2016-08-03 70 views
-1

我正在編寫一個程序,它會詢問用戶想要讀取的文本文件,然後開始讀取用戶輸入的任何文件名。這是我到目前爲止:如何選擇和上傳python文件

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

解析FASTA文件;) 什麼是你的錯誤,或者特定問題? –

+3

您不應該使用'raw_input'作爲變量名稱。另外,您不是在問您需要什麼幫助,也不會提及您是否有任何錯誤/障礙。 – Harrison

+0

'IOError:[Errno 2]沒有這樣的文件或目錄:'raw_input''應該已經告訴你問題是什麼,你試圖打開一個名爲''raw_input''的文件而不是使用上面那行代碼的變量。 –

回答

1

關閉我的頭頂,我認爲f = open("raw_input", "r")需求是f=open(raw_input, "r"),因爲你試圖引用包含的變量raw_input字符串,而不是試圖打開一個名爲的raw_input文件。你也應該把變量的名字改爲更易讀的名字,因爲raw_input()是一個在你的代碼中使用的函數,也是一個變量,這使得它很難閱讀。您的代碼中是否還有其他特定的問題?

+0

感謝那是我的問題我有引號,它使我困擾 –

+0

有沒有命名它raw_input真正的問題,因爲函數是raw_input(),但當然是更好地創建命名空間變量像file_raw_input或任何其他未採取。 – erm3nda

+0

@Gia Consantina您能否請您將我的答案標記爲已接受然後 –

0

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() 
相關問題