[英]Redirect print in Python: val = print(arg) to output mixed iterable to file
因此,可以说我有一个令人难以置信的列表/字典嵌套迭代。 我想将它们尽可能容易地打印到文件中。 为什么我不能仅将打印重定向到文件?
val = print(arg)
获取SyntaxError。
有没有办法访问stdinput?
为何打印会永久占用大量字符串? 对于输出大量字符串而言,我这一边的编程很差,但是调试却很快速,这不是利用交互式提示的优势吗?
还有一种比我的抱怨更简单的方法。 蜂巢有答案吗?
您可以查看Python的日志记录模块。 在这种情况下,也许这是完美的搭配。
在Python 3.*
,要将一个print
调用重定向到一个打开的文件对象destination
,
print(arg, file=destination)
在Python 2.*
,其中print
是一条语句,其语法为
print>>destination, arg
我想您正在使用2.*
因为在3.*
分配print
的结果不是语法错误(它只是无用的,因为该结果为None
,但允许)。 在2.*
print
是一个语句 ,而不是一个函数,因此您提供的代码片段确实是语法错误。
我不确定任务应该指的是什么。 如果要重定向一个或多个print
语句(或调用)以将格式化的结果作为内存中的字符串获取,则可以将sys.stdout
设置为StringIO
(或cStringIO
)实例; 但是您特别提到“到文件”,因此我对该分配的预期含义感到困惑。 请澄清?
通常,您不使用print
来写入文件(尽管从技术上讲可以)。 您将为此使用文件对象。
with open(filename, 'w') as f:
f.write(repr(your_thingy))
如果print
花费大量时间显示大量字符串,那可能不是完全print
的错,而是必须将所有内容显示在屏幕上的结果。
我尝试使用python 2.7都没有成功的两个示例
首先,我使用记事本在C:\\ goat.text中创建了一个文件
接下来我尝试了以下
导入系统
打印>>“ C:\\ goat.txt”,“测试”错误AttributeError:'str'对象没有属性'write'
print(“ test”,file = open('C:\\ goat.txt','w'))
语法错误:(“输入'='处没有可行的选择”,('C:\\ Users \\ mike \\ AppData \\ Local \\ Temp \\ sikuli-tmp5165417708161227735.py',3,18,'print(“ test”,file = open (\\'C:\\\\ goat.txt \\',\\'w \\'))\\ n'))
我尝试了多种变体,但无法解决此问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.