Trong thực tế, vì nó seams rằng trăn không thể nhìn thấy tên tập tin rằng khi stdin được chuyển hướng từ giao diện điều khiển, bạn có một sự lựa chọn:
Gọi chương trình của bạn như thế này:
python3 ritwc.py -i your_file.txt
và sau đó thêm mã sau để chuyển hướng stdin từ bên trong python, để bạn có quyền truy cập vào tên tệp thông qua biến "filename_in":
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...
Nếu bây giờ bạn sử dụng đồng mmand:
print(sys.stdin.name)
bạn lấy tên tệp của mình; tuy nhiên, khi bạn thực hiện lệnh in tương tự sau khi chuyển hướng stdin từ giao diện điều khiển, bạn sẽ nhận được kết quả: <stdin>
, đó sẽ là bằng chứng cho thấy python không thể nhìn thấy tên tệp theo cách đó.
Nguồn
2013-03-07 01:06:09
Hi nneonneo, bạn có biết tại sao ubuntu của tôi thực sự có đường dẫn '/ proc/self/fd/0' nhưng khi tôi làm' ./test.py
8090PZ