我正在编写一个程序,它询问用户想要读取什么文本文件,然后开始读取用户输入的任何文件名。以下是我目前所拥有的:
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)
前两行有效,但它说找不到我输入要读取的文件。请帮忙!谢谢
在我的脑海中,我认为f = open("raw_input", "r")
需要是f=open(raw_input, "r")
,因为你试图引用变量raw_input
中包含的字符串,而不是试图打开一个名为raw_input的文件。此外,您可能应该将变量的名称更改为更可读的名称,因为raw_input()
是代码中使用的函数,也是一个变量,这使得它很难读取。您的代码中是否存在其他特定的问题?
f=open("raw_input", "r")
"raw_input"是一个纯字符串。你必须把它称为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()