Tại sao cố gắng in trực tiếp vào một tệp thay vì sys.stdout
tạo ra lỗi cú pháp sau:
Python 2.7.2+ (default, Oct 4 2011, 20:06:09)
[GCC 4.6.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> f1=open('./testfile', 'w+')
>>> print('This is a test', file=f1)
File "<stdin>", line 1
print('This is a test', file=f1)
^
SyntaxError: invalid syntax
Từ trợ giúp (__ builtins__) Tôi có thông tin sau:
print(...)
print(value, ..., sep=' ', end='\n', file=sys.stdout)
Prints the values to a stream, or to sys.stdout by default.
Optional keyword arguments:
file: a file-like object (stream); defaults to the current sys.stdout.
sep: string inserted between values, default a space.
end: string appended after the last value, default a newline.
Vì vậy, cú pháp phù hợp để thay đổi dòng tiêu chuẩn in được ghi vào là gì?
Tôi biết rằng có nhiều cách khác nhau có thể tốt hơn để ghi vào tệp nhưng tôi thực sự không hiểu tại sao đây lại là lỗi cú pháp ...
Một lời giải thích tốt đẹp sẽ được đánh giá cao!
from __future__ import print_function
? Trong Python <3, print là một câu lệnh:
help(__builtins__)
hiển thị điều đó hoàn toàn là một lỗi.
__builtins__.__dict__['print'](value, file=f1)
không làm việc, mặc dù).
print()
là hàm tích hợp trongprint
python 3.x , trong khi là toán tử python <3.x. Bài đăng cho thấy2.7.2+
.