Lesen Sie die Argumente aus dem Dateinamen oder dem Standard
#!/usr/bin/env python3
"""
Wenn das Argument eine Datei ist, wird der Inhalt der Datei,
Andernfalls drucken Sie das Argument
"""
import sys
import fileinput
from pathlib import Path
if Path(sys.argv[1]).exists(): #Wenn das erste Argument eine Datei ist
for line in fileinput.input(): #Drucken Sie den Inhalt der Datei Zeile für Zeile
print('file input')
print(line)
else: #Wenn das erste Argument keine Datei ist
for i in sys.argv[1:]: #Drucken Sie die Argumentzeichenfolge
print('args input')
print(i)
Ausführungsergebnis
$ python stdin_test.py hoge.txt fuga.txt
file input
MYNAME!
file input
HERO!!
$ python stdin_test.py 1 2 3
args input
1
args input
2
args input
3
Da sys.argv
als Liste zurückgegeben wird, habe ich es verwendet, damit das Ergebnis von fileinput.input ()
auch im Listenformat zurückgegeben wird.
Lesen Sie das Argument aus dem Dateinamen oder stdin und geben Sie es als Liste zurück
if Path(sys.argv[1]).exists(): #Wenn das erste Argument eine Datei ist
ARGV = [
line.replace('\n', '') for line in fileinput.input() #Zeilenumbrüche löschen
if line != '\n' #Leere Zeile löschen
]
else: #Wenn das erste Argument keine Datei ist
ARGV = sys.argv[1:]
Python offizielles Dokument
Recommended Posts