Python 2.7使用无意的新行进行打印

时间:2017-10-13 12:00:40

标签: python string python-2.7 newline line-breaks

仍然是Python的新手..

我正在遍历文本文件:

0x000B000A
0x000B000B
0x000B000C

并将每一行附加到基本网址,这是我遇到问题的代码的具体部分:

def ProcessID(id):
  url = baseUrl + "/" + id + "/" + type + "-" + id + "-" + version + "." + extension
  print "Processing: " + url

for line in inputFile:
      ProcessID(line)

问题是任何以AB结尾的行都会在print命令中添加换行符:

Processing: http://example.com/0x000B000A
/LST3-0x000B000A
-000000.ext
Processing: http://example.com/0x000B000B
/LST3-0x000B000B
-000000.ext
Processing: http://example.com/0x000B000C/LST3-0x000B000C-000000.ext

我在这里做错了什么?这与Python解释字符串的方式有关(即在Unicode 0A,0B中)?

谢谢, PJ

2 个答案:

答案 0 :(得分:3)

当迭代这样的文件中的行时,这些行仍将包含最终的换行符'\n'(如果之后没有空行,则除了最后一行)。剥离它们是最容易的:

for line in inputFile:
      ProcessID(line.strip())
      # OR: if you want to be more explicit and keep all other white space
      ProcessID(line.rstrip('\n'))  

答案 1 :(得分:0)

你正在插入整条线,并将其中断。你应该从每一行中删除它。你可以line.replace("\n", "")