0

连接时得到奇怪的输出。当它使用这个时:

print 'sadasdadgdsfdajfhdsgsdkjhgsfjhdfdsfds'+'.323232600656520346403'

它工作正常。

但是当我这样做时:

getReference = open('test.txt','r')

for line in getReference:#os.path.exists(''+line+'.txt')

    try:
        with open(''+line+'.txt') as f: pass
    except IOError as e:
        newURL ='http://www.intrat.th/'+''.join(line)+'.fsta'
        print newURL

当我打印 newURL 时,它没有给我一行文本,而是在第二行有 .fsta 。为什么会这样?

4

3 回答 3

3

这是因为line'\n', 换行符结尾。

解决此问题的一种方法是:

for line in getReference:
    line = line.strip()
    # more code manipulating line
    # print stuff
于 2012-07-09T17:59:31.527 回答
2

听起来您正在阅读换行符。尝试以下操作:

getReference = open('test.txt','r')

for line in getReference:#os.path.exists(''+line+'.txt')
    line = line.rstrip('\n') # Strip the newline here

    try:
        with open(''+line+'.txt') as f: pass
    except IOError as e:
        newURL ='http://www.intrat.th/'+''.join(line)+'.fsta'
        print newURL

请注意,换行符可能不适合您的操作系统,在这种情况下您可以这样做

import os
# all your code
line = line.rstrip(os.linesep)
# more code
于 2012-07-09T17:59:53.113 回答
0

你的线:

for line in getReference:

将遍历文件中的行,包括换行符 \n(和 \r)。因此,您可能正试图打开一个文件 'filename\n.txt',这不是您的本意。

作为解决方案,使用条带:

with open(''+line.strip()+'.txt') as f: pass
于 2012-07-09T18:03:38.093 回答