正在获取关键字参数end=”的打印SyntaxError

我有一个python脚本,需要在其中运行gdal\u retile.py
但我在这一行有个例外:

如果冗长:
打印(“为%d个磁贴建立内部索引…”

end=''的语法无效。我很好奇为什么,以及作者可能想做什么

如果你还没猜到的话,我是python新手


我认为问题的根本原因是这些进口产品失败了
因此,必须包含此导入from\uuuuuuuuuuuuuuuuuuuuuuuuuuuu导入打印功能

尝试:
从osgeo导入gdal
从osgeo导入ogr
从osgeo导入osr
从osgeo.gdalconst导入*
除:
导入gdal
导入ogr
导入osr
从gdalconst导入*

您确定使用的是Python3.x吗?该语法在Python2.x中不可用,因为print仍然是一条语句

打印(“foo”%bar,end=“”)

在Python中,2.x与

打印(“foo”%bar,end=“”)

打印“foo”%bar,end=“”

i、 e.作为以元组作为参数的打印调用

这显然是糟糕的语法(文本不接受关键字参数)。在Python3.x中,print是一个实际函数,因此它也需要关键字参数

Python2.x中end=”“的正确用法是:

打印“foo”%bar,

(请注意最后一个逗号,这将使其以空格而不是换行符结尾)

如果您希望对输出进行更多的控制,请考虑使用 sys .STDUT/。这不会对输出产生任何特殊的魔力

当然,在Python2.x的最新版本中(2.5应该有它,但不确定2.4是否有),您可以使用\uuuuuuuuuuuuuuuuuuu模块在脚本文件中启用它:

来自未来导入打印功能的


这同样适用于unicode\u文本和其他一些好东西(例如with\u语句)。但是,这在Python2.x的真正旧版本(即在引入该功能之前创建的版本)中不起作用

发表评论