如何在python中选择和上传文件

时间:2016-08-03 17:30:50

标签: python python-2.7 file import text-files

我正在编写一个程序,它会询问用户想要读取的文本文件,然后它开始读取用户输入的任何文件名。以下是我到目前为止的情况:

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)

前两行有效,但后来说它无法找到我输入的文件。请帮忙!感谢。

2 个答案:

答案 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()