coś takiego:
#!/usr/bin/python3
import sys
def myFirstFunction():
return open(sys.argv[1], 'r')
openFile = myFirstFunction()
for line in openFile:
print (line.strip()) #remove '\n'? if not remove .strip()
#do other stuff
openFile.close() #don't forget to close open file
następnie nazwałbym go tak:
./readFile.py temp.txt
, który wyświetli treść pliku temp.txt
sys.argv[0]
wyświetli nazwę skryptu. W tym przypadku ./readFile.py
Aktualizacja Moja odpowiedź
ponieważ wydaje się, inni chcą podejścia try
How do I check whether a file exists using Python? jest dobre pytanie na ten temat, w jaki sposób sprawdzić, czy plik istnieje. Nie wydaje się być niezgoda na której metody użyć, ale przy użyciu wersji przyjętej byłoby jak następuje:
#!/usr/bin/python3
import sys
def myFirstFunction():
try:
inputFile = open(sys.argv[1], 'r')
return inputFile
except Exception as e:
print('Oh No! => %s' %e)
sys.exit(2) #Unix programs generally use 2 for
#command line syntax errors
# and 1 for all other kind of errors.
openFile = myFirstFunction()
for line in openFile:
print (line.strip())
#do other stuff
openFile.close()
które wyjście następuje:
$ ./readFile.py badFile
Oh No! => [Errno 2] No such file or directory: 'badFile'
prawdopodobnie można zrobić to z if
oświadczenie, ale podoba mi się this komentarz na temat EAFP VS LBYL
Nie używać domyślnych parametrów takich jak to. Otworzy się plik "myNotes.txt", nawet jeśli funkcja nigdy nie zostanie wywołana. Domyślne parametry powinny prawie zawsze być wartościami niezmiennymi. –
"Mam nazwę pliku na stałe w funkcji ..." Nie, nie robisz; masz określony obiekt pliku jako parametr domyślny. To naprawdę zły pomysł. Chcesz przekazać rzeczywistą nazwę 'myNotes.txt'' do funkcji, a nie wynik' open() '. Niech ciało funkcji wykona operację 'open()'. –