2011-08-11 14 views
30

Jak uzyskać nazwę pliku z wiersza poleceń po uruchomieniu kodu Pythona? Jak gdyby kod otwiera plik i czyta wiersz, ale plik zmienia się, kiedy tylko go uruchomić, jak mówisz:PYTHON pobiera pliki z wiersza poleceń

python code.py input.txt 

więc kod analizuje „input.txt”? Co musiałbyś zrobić w aktualnym kodzie Pythona? Wiem, to dość niejasne pytanie, ale tak naprawdę nie wiem, jak to wyjaśnić.

Odpowiedz

23
import sys 
filename = sys.argv[-1] 

Otrzyma ostatni argument w wierszu poleceń. Jeśli żadne argumenty nie zostaną przekazane, będzie to sama nazwa skryptu, jako sys.argv[0] jest nazwą uruchomionego programu.

37

Doskonałą opcją jest moduł fileinput, który będzie przechwytywał dowolne lub wszystkie nazwy plików z wiersza poleceń, a następnie przekazuje zawartość skryptowi tak, jakby był jednym dużym plikiem.

import fileinput 
for line in fileinput.input(): 
    process(line) 

Więcej informacji here.

8

Parametry wiersza poleceń są dostępne jako lista z listy sys modułu argv. Pierwszym elementem na liście jest nazwa programu (sys.argv[0]). Pozostałe elementy są parametrami wiersza poleceń.

Zobacz także moduły getopt, optparse i argparse dla bardziej złożonego parsowania linii poleceń.

-1

Wystarczy użyć komendy podstawowe raw_input

deklaruje nazwę pliku wejściowego jako ciąg

inFile = "" 
inFile = raw_input("Enter the input File Name: ") 

Teraz można otworzyć plik korzystając z open(inFile,'w')

+0

Pomija całkowicie punkt pytania – JPCF

11

Korzystanie argparse jest dość intuicyjny:

import argparse 
parser = argparse.ArgumentParser()            

parser.add_argument("--file", "-f", type=str, required=True) 
args = parser.parse_args() 

Teraz nazwa Plik znajduje się w:

args.file 

Po prostu trzeba uruchomić program trochę inaczej:

python code.py -f input.txt 
Powiązane problemy