我只是将项目保存到文件中以供日后阅读时遇到问题。当我保存文件时,它不是将项目列为单个项目,而是将数据作为一个长字符串附加在一起。根据我的谷歌搜索,这不应该附加项目。我做错了什么?
提前致谢
代码:
with open('Ped.dta','w+') as p:
p.write(str(recnum)) # Add record number to top of file
for x in range(recnum):
p.write(dte[x]) # Write date
p.write(str(stp[x])) # Write Steps number
答案 0 :(得分:1)
由于您不显示数据或输出,我无法确定。但似乎您尝试使用write
方法,如print
函数,但存在重要差异。
最重要的是,write
不会跟随其带有任何分隔符的书写字符(默认情况下为print
的空格)或结束(默认情况下为\n
print
) 。
因此,您的数据和步骤编号之间或行之间没有空格,因为您没有编写它们并且Python没有添加它们。
所以加上那些。试试行
p.write(dte[x]) # Write date
p.write(' ') # space separator
p.write(str(stp[x])) # Write Steps number
p.write('\n') # line terminator
请注意,我不知道您所写的“日期”的格式,因此您可能需要在编写之前将其转换为文本。
现在我有时间,我将实施@ abarnert的建议(在评论中),并向您展示如何获得print
函数的优势并仍然写入文件。只需在Python 3中使用file=
参数,或在执行语句
from __future__ import print_function
使用print
,您可以在一行中执行上面的四行,因为print
会自动添加空格分隔符和换行符结束:
print(dte[x], str(stp[x]), file=p)
这假设您的日期基准dte[x]
将打印为文本。
答案 1 :(得分:0)
尝试在docs中看到的行末尾添加换行符('\n'
)。这应解决将项目列为单个项目的问题,但您创建的文件可能不会有很大的结构。
对于进一步的Google搜索,您可能需要检查python标准库中涵盖的serialization以及json
和csv
格式。
如果您提供recnum
变量+原始f.close()
的非常小的示例,则您有问题,因为您有with
语句,请参阅here at SO。< / p>