无法删除换行符

时间:2013-03-18 18:46:23

标签: python string file formatting text-files

我一直在尝试用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()

2 个答案:

答案 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行结尾,这也很有用,所以它很健壮。