我一直收到相同的错误消息,但我不知道该错误试图告诉我什么。
# from __future__ import print_function
from sys import argv
from os.path import exists
# unpack the arguments
filename = argv
print("Checking if %s exists" % filename, sep='', end='')
这是错误。
SyntaxError: invalid syntax
File "check.py", line 8
print("Checking if %s exists" % filename, sep='', end='')
^
根据documentation,语法看起来正确。我试过删除括号,我试过import __future__.print_function
希望这可能会有所帮助。我不知道还能做什么。感谢您的帮助,整个计划如下。
# Program checks if file exists. Prints out textual interface
# gives the impression of "loading".
from __future__ import print_function
from sys import argv
from os.path import exists
from time import sleep
# unpack the arguments
script, filename = argv
print("Checking if %s exists" % filename, sep='', end='')
for i in range(2):
for j in range(3):
sleep(1)
print( ".", sep='', end='')
print( "\b\b\b", sep='', end='')
print
print("File exists: %s" % exists(filename) )
答案 0 :(得分:1)
您有几个选项,但需要正确使用它们。
首先,如果您使用from __future__ import print_function
,必须使用print()
的父母。导入改变了Python 2的print
就像Python 3版本一样。这仅适用于Python 2.x解释器。当然,Python 3已经有print()
。
在print
末尾添加逗号仅适用于print
的Python 2.x样式。使用{3}的Python 3样式没有任何意义。
考虑到这一点,您有两种选择。
print()
print("some text", end='')
:sys.stdout
这两个选项都适用于Python 2.7(带有sys.stdout.write("some text")
)和Python 3。
这是一个包含您正在使用的from __future__ import print_function
的示例。另请注意,该样式已在Python 3中进行了删除。
"%s" % X
Python 2和Python 3中此脚本的输出是:
from __future__ import print_function
import sys
def print_no_newline_1(text):
sys.stdout.write("the text is [%s]" % text)
def python3_style(text):
print("the text is [%s]" % text, end='')
if __name__ == '__main__':
print_no_newline_1("my text")
print(" this will be on the same line")
python3_style("my text")
print(" this will be on the same line")
答案 1 :(得分:0)
尝试:
print "Checking if %s exists" % filename
我不完全确定您使用的是sep=''
和end=''
。
[编辑:修复缺少双引号]