、それは標準入力をコンソールからリダイレクトされたときにPythonがそのファイル名を見ることができないことを縫い目として、あなたは選択肢を持っている:
はこのようにあなたのプログラムを呼び出します。
python3 ritwc.py -i your_file.txt
、その後追加あなたは、変数「filename_in」経由のファイル名へのアクセス権を持っているように、次のコードは、pythonの中から標準入力をリダイレクトします
import sys
flag=0
for arg in sys.argv:
if flag:
filename_in = arg
break
if arg=="-i":
flag=1
sys.stdin = open(filename_in, 'r')
#the rest of your code...
今あなたが共同使用している場合mmand:
print(sys.stdin.name)
あなたはファイル名を取得します。しかし、コンソールからstdinをリダイレクトした後に同じ印刷コマンドを実行すると、結果は<stdin>
になります。これは、pythonがそのようにファイル名を見ることができないという証拠になります。
私のubuntuが本当に/ proc/self/fd/0のパスを持っているのか知っていますか? './test.py
8090PZ