Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.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 cPickle.dump包含换行符_Python_Pickle - Fatal编程技术网

python cPickle.dump包含换行符

python cPickle.dump包含换行符,python,pickle,Python,Pickle,我想在文件中保存一个pickle.dumps()结果,每行一个结果,如下例所示。然后,当我读取文件时加载该行时,我发现相同的结果包含一个换行符 数据,由选项卡分隔: 20120305\txxxxx\t[the dumps result] 非常感谢您的帮助/建议。使用csv模块输出文件,并pickle.dumps()(保存到字符串): csv模块将负责报价;换行符仍然存在,但是如果数据周围有引号,任何合适的CSV阅读器(包括CSV.reader())都可以再次读取数据。再次将数据传递到pickl

我想在文件中保存一个
pickle.dumps()
结果,每行一个结果,如下例所示。然后,当我读取文件时加载该行时,我发现相同的结果包含一个换行符

数据,由选项卡分隔:

20120305\txxxxx\t[the dumps result]

非常感谢您的帮助/建议。

使用
csv
模块输出文件,并
pickle.dumps()
(保存到字符串):


csv
模块将负责报价;换行符仍然存在,但是如果数据周围有引号,任何合适的CSV阅读器(包括
CSV.reader()
)都可以再次读取数据。再次将数据传递到pickle.loads()。

我编辑了您的问题以改进语法和拼写,请检查我是否正确理解您的意思。感谢您的快速回复!现在我使用python日志记录模块来处理这个问题,我认为csv模块不能与日志记录模块集成,可以给我一些建议我使用
csv
模块来生成制表符分隔的输出,该输出允许数据中的换行符;将其与
日志记录
模块集成没有什么意义。如果
日志记录
模块适合您,请坚持使用它。pickle通常会在其pickle中添加
\n
字符,因此我发现将
pickle.dumps(x)
放入一个列表(即问题中的
[pickle.dumps]
)非常有用,以避免出现问题。@Roman:这会严重破坏格式。
csv
模块已经区分了列分隔符和行分隔符中的换行符。@MartijnPieters:如果逐行读取csv文件(例如在MapReduce脚本中),则换行符会导致问题。将pickle字符串限制在列表中可以避免这个问题。
import csv

with open(outputfilename, 'wb') as out:
    writer = csv.writer(out, delimiter='\t')
    writer.writerow(['20120305', 'xxxxx', pickle.dumps(result)])