我实现了一个函数,使包装器写入文件。这是代码:
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个字符处插入一个换行符,导致我的输出文件中出现硬换行,这是我不想要的。
我查看了open
和write
函数/方法的文档,我没有看到任何指定任何行长度的硬换行。
我自己的愚蠢——我写的字符串中包含字符序列n
, python正确地将它们解释为换行符。我需要在字符串中转义它们。如果这篇文章还没有得到回复,我就把它撤了。
fh.write()
不换行。有两种可能:
-
thestring
包含一个嵌入在193位置的换行符。 - 用来检查输出文件的编辑器/查看器正在换行。
第一种可能性很容易通过打印出thestring
的值来消除。
第二种可能性可以通过在十六进制查看器(例如xxd
)中查看输出文件来消除,以查看无关的换行符是否实际上是文件的一部分,或者仅仅是一个显示工件。