因此,假设我有一个令人难以置信的嵌套迭代列表/词典。我想尽可能轻松地将它们打印到文件中。为什么我不能将打印重定向到文件?
val = print(arg)
得到一个SyntaxError。
有没有办法访问stdinput?
为什么打印需要永远使用大量字符串?对我来说输出大量字符串的编程很糟糕,但是调试很快 - 而不是利用交互式提示的强度吗?
可能还有一种比我的抱怨更容易的方式。蜂巢头脑有答案吗?
答案 0 :(得分:2)
您可以查看Python的logging模块。也许这就是这种情况下的完美匹配。
答案 1 :(得分:1)
了解您如何使用print
作为功能docs say that you can redirect to file,如下所示:
print(arg, file=open('fname', 'w'))
答案 2 :(得分:1)
在Python 3.*
中,要将一个print
调用重定向到打开的文件对象destination
,
print(arg, file=destination)
在Python 2.*
中,print
是一个语句,语法为
print>>destination, arg
我想你正在使用2.*
,因为在3.*
中分配print
的结果不是语法错误(它只是没用,因为结果是None
,但允许)。在2.*
print
中是语句,而不是函数,因此您提供的代码段实际上是语法错误。
我不确定这项任务应该是什么意思。如果要重定向一个或多个print
语句(或调用)以将格式化结果作为内存中字符串,则可以将sys.stdout
设置为StringIO
(或{{1实例;但你特别提到“一个文件”,所以我真的很困惑这个任务的意图。请澄清一下?
答案 3 :(得分:1)
您通常不会使用print
来写入文件(尽管从技术上讲可以)。你可以使用一个文件对象。
with open(filename, 'w') as f:
f.write(repr(your_thingy))
如果print
永远显示一个巨大的字符串,很可能它不是print
的错误,而是必须显示所有屏幕的结果。
答案 4 :(得分:0)
我尝试使用python 2.7
两个例子都没有成功首先,我使用记事本
在C:\ goat.text中创建了一个文件接下来我尝试了以下
导入sys
打印>>“C:\ goat.txt”,“测试” 错误 AttributeError:'str'对象没有属性'write'
print(“test”,file = open('C:\ goat.txt','w'))
SyntaxError :(“输入'=''没有可行的选择,('C:\ Users \ mike \ AppData \ Local \ Temp \ sikuli-tmp5165417708161227735.py',3,18,'print(”test“, file = open(\'C:\\ goat.txt \',\'w \'))\ n'))
我尝试过多个变种,但无法解决这个问题。