我正在编写一个程序,它会询问用户想要读取的文本文件,然后它开始读取用户输入的任何文件名。以下是我到目前为止的情况:
import sys
import os
import re
#CHOOSE FILE
print "Welcome to the Parsing Database"
raw_input=raw_input("enter file name to parse: ")
#ASSIGN HEADERS AND SEQUENCES
f=open("raw_input", "r")
header=[]
sequence=[]
string=""
for line in f:
if ">" in line and string=="":
header.append(line[:-2])
elif ">" in line and string!="":
sequence.append(string)
header.append(line[:-2])
string=""
else:
string=string+line[:-2]
sequence.append(string)
前两行有效,但后来说它无法找到我输入的文件。请帮忙!感谢。
答案 0 :(得分:1)
在我的脑海中,我认为f = open("raw_input", "r")
需要f=open(raw_input, "r")
,因为您试图引用变量raw_input
中包含的字符串,而不是尝试打开一个名为raw_input的文件。此外,您应该将变量的名称更改为更可读的名称,因为raw_input()
是代码中使用的函数以及变量,这使得难以阅读。您的代码是否还有其他特定的问题?
答案 1 :(得分:0)
f=open("raw_input", "r")
"&的raw_input#34;是一个普通的字符串。你必须以raw_input
的形式引用它。
此外,如果您不使用.read()
open()
方法,那么就没有线路,因此您无法解析它们。从raw_input
给出的文件中读取行可以这样做:
import sys
import os
import re
#CHOOSE FILE
print "Welcome to the Parsing Database"
raw_input_file=raw_input("enter file name to parse: ")
#ASSIGN HEADERS AND SEQUENCES
testfile = open(raw_input_file, "r")
secuence = []
for line in testfile.read().splitlines():
secuence.append(line)
for i in secuence:
print i
testfile.close()