-2

嘿,我知道这已被问过几次,但我为它编写了自己的代码,但它不起作用,我不明白为什么。这是我的代码

def fixfiles ():
    inputfilehandle = open("C:/allCHP1seq.txt","r")
    outputf=open("chp1seqs.txt","w")
    lines = inputfilehandle.readlines()
    for line in lines:
        if "c:\users" not in line:
            outputf.write(line)

这是来自文件的数据示例,文件中基本上有 279 个,用 2 行分隔。但是每一个都是独一无二的,我需要做的是在开始指定目录时去掉那个位。

c:\users\gary\desktop\sequences for chp1\14-3 1076.txt
>fig|6666666.13395.peg.1076
atgatcaaagaaaccgaaaaaccgccaaccaccctctttaccgtcgtccc
cgacacccctaccgaaaccctgctgatcaacagctacgaaaccgtgtgtt
ccgtcagcaccctgctgctcgacttgtccgaagacctcaccggcaaacac
cgcgatatcgccttggccattcatcagttgagcgaactgagcgtcctgct
ggtgggcaaagccatggaccagcacacaccccgctgctga

我真的不知道我要去哪里错了:/帮助!

4

4 回答 4

3

你真的应该写:

if r"c:\users" not in line:
于 2012-08-03T15:37:16.627 回答
2

我想你应该逃避你的\:"c:\\users"而不是"c:\users".

于 2012-08-03T15:35:48.793 回答
1

您确实需要转义反斜杠。为了好玩,这里有一个单行解决方案: open("chp1seqs.txt","w").writelines(filter(lambda line: "c:\\users" in line, open("C:/allCHP1seq.txt","r").readlines()))

于 2012-08-03T16:03:19.060 回答
0

把它们切掉。它比测试每一行更有效,尤其是当您知道问题仅出在前两行时:

def fixfiles ():
    inputfilehandle = open("C:/allCHP1seq.txt","r")
    outputf=open("chp1seqs.txt","w")
    lines = inputfilehandle.readlines()[2:]
    for line in lines:
        outputf.write(line)
于 2012-08-03T15:35:37.640 回答