[英]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.