Python 2.7.8打印到一行没有逗号

时间:2014-09-14 23:06:03

标签: python debugging

我一直收到相同的错误消息,但我不知道该错误试图告诉我什么。

# 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) )

2 个答案:

答案 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样式没有任何意义。

考虑到这一点,您有两种选择。

  1. Python 3样式:print()
  2. 使用print("some text", end='')sys.stdout
  3. 这两个选项都适用于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=''

[编辑:修复缺少双引号]