我一直在尝试用python重写一个文本文件,在那里我进入一个文件, 抓住每一行,在行上追加一个字符串,然后重写 新附加到文本文件的行。我遇到的问题是这个 新构造的文本文件格式不正确。该文件包含 行,每行包含三个数字,用逗号分隔。如果是我的档案 如下所示:
57.88, 58.45, 45.31
57.88, 58.45, 45.31
57.88, 58.45, 45.31
我想在行中添加字符“a”,然后我需要该文件 看起来像这样:
57.88, 58.45, 45.31, a
57.88, 58.45, 45.31, a
57.88, 58.45, 45.31, a
相反,文件格式如下(当我在emacs和gedit中打开它时)
57.88, 58.45, 45.31
,a
57.88, 58.45, 45.31
,a
57.88, 58.45, 45,31
,a
有趣的是,无论格式如何,行数仍然相同(3) 的文件。我真的很困惑,有点沮丧。下边是 我用来重写文件的代码。我的蟒蛇技能真的很好 需要的,所以我可能需要使用一些明显的python函数 没有听说过。基本上,一旦我确定文件路径存在,我就打电话给 重写子程序,如下所示:
def getLines(filePath):
move(filePath, filePath+"~")
destination = open(filePath, "w")
source = open(filePath+"~", "r")
for line in source:
destination.write(line.strip("\n") + ",a\n"))
source.close()
destination.close()
答案 0 :(得分:3)
您可以尝试不那么明确,让strip为跨平台解决方案做好工作
...
for line in source:
destination.write(line.strip() + ",a\n"))
或者试试这个,
for line in source.readlines()
destination.write(line + ",a\n"))
答案 1 :(得分:2)
如果您使用的是非Unix平台,则您的文件可能包含\r\n
行终止符。尝试正确剥离\r\n
并附加",a\r\n"
。
destination.write(line.rstrip("\r\n") + ",a\r\n"))
即使文件只包含\n
行结尾,这也很有用,所以它很健壮。