python,当使用writestr时,有一个文本换行问题

时间:2017-02-20 09:21:51

标签: python zipfile stringio

我需要你的帮助〜 当我使用'wirtestr'时,我有一个LF问题。 文字已经写好了 但它有一行没有换行符。 只有我能找到看起来像方形的分隔符在它的中间有一个圆圈,也许是新行的十六进制代码。 如果有人知道这个问题,请帮助!

         fp = StringIO(line)
         value = fp.getvalue()
         filename1 = 'D:/re/m/11.txt'
         filename2 = 'D:/re/m/dd.zip'
         archive = zipfile.ZipFile(filename2, 'w', zipfile.ZIP_DEFLATED)
         finfo   = zipfile.ZipInfo(filename1)
         archive.writestr(finfo, value)

1 个答案:

答案 0 :(得分:0)

ZipFile.writestr方法以二进制模式从Python字符串写入文件。然后,使用此方法添加的所有文本文件必须具有显式的'\ r \ n'行尾,以便Windows程序在以后正确读取它们。

您的原始内容在python中具有“通用行结尾”,通常在通过文本模式输出文件时只能转换为CRLF('\ r \ n')。

这似乎在python 3.x中已解决