附加到换行符Python的音符

时间:2013-03-29 18:11:45

标签: python file encoding character

具体来说,我已经从Google Adwords导出了一个csv文件。

我逐行阅读文件并更改电话号码。

这是文字脚本:

for line in open('ads.csv', 'r'):
    newdata = changeNums(line)
    sys.stdout.write(newdata)

changeNums()只执行一些字符串替换并返回字符串。

问题是在印刷的换行符的末尾是一个音符。

musical note

原始CSV在行尾没有此注释。另外,我无法复制粘贴笔记。

这是某种编码问题还是正在发生什么?

3 个答案:

答案 0 :(得分:2)

尝试使用universal line support打开:

for line in open('ads.csv', 'rU'):
    # etc

答案 1 :(得分:0)

或者:

  • 原始文件上有一些字符(并且它们在终端中显示为此符号)
  • changeNums正在创建这些字符
  • stdout.write正在发送一些非解释的换行符号,终端再次显示为此符号,将此行更改为print(newdata)

我的猜测:changeNums正在添加它。

最佳调试命令:

print([ord(x) for x in line])
print([ord(x) for x in newdata])
print line == newdata

检查字符串中的字符值。

答案 2 :(得分:0)

您可以通过以下方式删除换行符:

for line in open('ads.csv', 'r'):
    line = line.rstrip('\n')
    newdata = changeNums(line)
    sys.stdout.write(newdata)

最后一个奇怪的“音符”字符通常是* nix和* dos / * win环境之间的CR / LF换行问题。