2016-08-03 29 views
-1

Ich schreibe ein Programm, in dem Sie gefragt werden, welche Textdatei der Benutzer lesen möchte, dann fängt er an, den vom Benutzer eingegebenen Dateinamen zu lesen. Hier ist, was ich bisher:Wie wähle ich eine Datei in Python aus und lade sie hoch

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) 

Die ersten beiden Zeilen arbeiten, aber dann sagt sie es die Datei nicht finden kann, die ich lesen eingegeben. Bitte helfen Sie! Vielen Dank.

+0

Parsing FASTA-Dateien durch Zufall;) Was ist Ihr Fehler oder spezifisches Problem? –

+3

Sie sollten 'raw_input' nicht als Variablennamen verwenden. Sie fragen auch nicht, wofür Sie konkret Hilfe benötigen, und Sie erwähnen auch nicht, ob Sie Fehler/Roadblocks haben. – Harrison

+0

'IOError: [Errno 2] Keine Datei oder Verzeichnis: 'raw_input'' sollte Ihnen schon sagen, was das Problem ist, Sie versuchen, eine Datei mit dem Namen' 'raw_input'' zu öffnen, anstatt die Variable zu verwenden . –

Antwort

1

Aus der Spitze von meinem Kopf, ich denke, dass f = open("raw_input", "r") Bedürfnisse f=open(raw_input, "r"), zu sein, weil Sie die Zeichenfolge in den Variablen raw_input enthaltenen Referenz versuchen, im Gegensatz zu versuchen, raw_input genannt, eine Datei zu öffnen. Außerdem sollten Sie den Namen der Variablen wahrscheinlich in etwas besser lesbares ändern, da raw_input() eine Funktion ist, die in Ihrem Code verwendet wird, sowie eine Variable, die das Lesen erschwert. Gibt es andere spezifische Probleme, die Sie mit Ihrem Code haben?

+0

Danke, das war mein Problem, ich hatte die Anführungszeichen und es war mir Unordnung –

+0

gibt es kein wirkliches Problem auf die Benennung von raw_input, weil die Funktionen raw_input() ist, aber natürlich ist besser namespaced Variablen wie file_raw_input oder andere nicht übernommen . – erm3nda

+0

@Gia Consantina könntest du bitte meine Antwort als akzeptiert dann –

0

f=open("raw_input", "r")

"raw_input" ist eine einfache Zeichenkette. Sie müssen darauf als raw_input verweisen.

Außerdem gibt es keine Zeilen, wenn Sie nicht .read() mit open() Methode verwenden, so dass Sie sie nicht analysieren können. Lesen Sie Zeilen aus einer von raw_input angegebenen Datei können tun, dass getan werden:

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