我实现了一个函数来创建一个包装器来写入文件。这是代码:
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
函数/方法的文档,我没有看到任何指定任何行长的硬包装的文档。
对于解决这个问题的任何见解表示赞赏。
答案 0 :(得分:1)
我自己的愚蠢 - 我正在编写其中包含字符序列\n
的字符串,而python正确地将它们解释为换行符。我需要在我的字符串中逃避它们。如果还没有回复,我会把这篇文章记下来。
答案 1 :(得分:0)
fh.write()
不会换行。有两种可能性:
thestring
在第193位包含嵌入式换行符。通过打印thestring
的值来轻松消除第一种可能性。
通过查看十六进制查看器中的输出文件(例如xxd
)可以消除第二种可能性,以查看无关换行是否实际上是文件的一部分,或者只是一个显示文件。