2016-08-03 14 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) 

最初の2行は動作しますが、それはそれは私が読むために入力されたファイルを見つけることができないと言う:ここでは私がこれまで持っているものです。助けてください!ありがとう。私の頭の上オフ

+0

解析FASTAファイルを万が一;) あなたのエラーまたは特定の問題とは何ですか? –

+3

変数名として 'raw_input'を使うべきではありません。また、具体的に何が助けを必要としているのかを尋ねるのではなく、エラーやロードブロッキングがある場合は言及していません。 – Harrison

+0

'IOError:[Errno 2]このようなファイルやディレクトリはありません: 'raw_input''はすでに問題を示しているはずです。上の行の変数を使用する代わりにraw_inputという名前のファイルを開こうとしています。 –

答えて

1

、私はraw_inputという名前のファイルを開こうとは対照的に、あなたは、変数raw_inputに含まれる文字列を参照しようとしているためf = open("raw_input", "r")は、f=open(raw_input, "r")にする必要があると思います。また、raw_input()はあなたのコードと変数で使用される関数なので、変数の名前を読みやすくするためにおそらく変数名を読みやすくする必要があります。コードに問題がありますか他のの問題がありますか?

+0

私の問題だったので、私は引用符をつけてしまいました。 –

+0

関数はraw_input()なので、raw_inputという名前に実際の問題はありませんが、file_raw_inputや他のものとは異なる名前空間の変数を作成する方が良い。 – erm3nda

+0

@Gia Consantinaは、答えがOK30であることを告げることができました –

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() 
関連する問題