Python 2.6.2:将行写入以192个字符的文件硬包装

时间:2011-12-12 22:45:32

标签: python

我实现了一个函数来创建一个包装器来写入文件。这是代码:

def writeStringToFile(thestring, thefile, mode='w'):
    """Write a string to filename `thefile' to the directory specified in `dir_out'."""
    with open(os.path.join(dir_out, thefile), mode) as fh:
        fh.write("{0}\n".format(thestring))

我发现当我写任何超过192个字符的字符串时,会在字符192处插入换行符,导致我的输出文件中出现硬包装,这是我不想要的。

我查看了openwrite函数/方法的文档,我没有看到任何指定任何行长的硬包装的文档。

对于解决这个问题的任何见解表示赞赏。

2 个答案:

答案 0 :(得分:1)

我自己的愚蠢 - 我正在编写其中包含字符序列\n的字符串,而python正确地将它们解释为换行符。我需要在我的字符串中逃避它们。如果还没有回复,我会把这篇文章记下来。

答案 1 :(得分:0)

fh.write()不会换行。有两种可能性:

  1. thestring在第193位包含嵌入式换行符。
  2. 您用来检查输出文件的编辑器/查看器正在换行。
  3. 通过打印thestring的值来轻松消除第一种可能性。

    通过查看十六进制查看器中的输出文件(例如xxd)可以消除第二种可能性,以查看无关换行是否实际上是文件的一部分,或者只是一个显示文件。