Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Python打印到文件?_Python_Printing - Fatal编程技术网

用Python打印到文件?

用Python打印到文件?,python,printing,Python,Printing,我已经看过了关于如何在Python中打印到文件的教程,但是我仍然有一个问题。当我这样做时: x = a_function_that_spits_out_a_table print x 这张桌子看起来很棒,而且格式也很正确。但当我这样做的时候: f=open(myfile,"w") print >> f, x 我得到一个只有一行文本的文件,没有任何换行符。如何准确地按照使用“打印”命令时文件的显示方式打印文件?它可以工作: print >> f, "{line_con

我已经看过了关于如何在Python中打印到文件的教程,但是我仍然有一个问题。当我这样做时:

x = a_function_that_spits_out_a_table
print x
这张桌子看起来很棒,而且格式也很正确。但当我这样做的时候:

f=open(myfile,"w")
print >> f, x
我得到一个只有一行文本的文件,没有任何换行符。如何准确地按照使用“打印”命令时文件的显示方式打印文件?

它可以工作:

print  >> f, "{line_content} \n".format(line_content=x)
格式字符串方法易于使用

见文件:


注意:即使我将新行字符写为“\n”,Python也可以在写入和读取时将“\n”字符转换为特定于平台的表示形式。请参见此处:

打印报告(x)是什么样子的?fobj所做的一切是写入不同的文件对象,而不是写入
sys.stdout
,因此两种方法的输出完全相同。是否使用正确的换行符?例如,stdout将为\n(和大多数文本编辑器)创建新行,但notepad.exe(windows)不会,它只为“\r\n”创建新行。print repr(x)看起来像一行,包括换行符。当我写入文本文件时,我没有看到换行符,我只看到一个换行符应该在的空间,一个la:“table bottomoftable顶部”。请参阅@at0ma注释。我敢肯定,终端和windows记事本之间的终端问题,或者类似的讨厌问题,在记事本++中打开时确实有效。谢谢@user1566200这是一个行尾问题。Windows的记事本仅使用
\r\n
断行,并且您正在向它提供一个仅使用
\n
的文件。微妙@FilipeGonçalves Python可以在写入时将“\n”字符转换为平台特定的表示形式,在读取时再转换。请参见此处:python文档