奇怪的文本连接

时间:2012-07-09 17:53:44

标签: python text

连接时我得到奇怪的输出。 使用时:

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。 为什么会这样?

3 个答案:

答案 0 :(得分:3)

这是因为line以换行符'\n'终止。

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

for line in getReference:
    line = line.strip()
    # more code manipulating line
    # print stuff

答案 1 :(得分: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

答案 2 :(得分:0)

你的行:

for line in getReference:

将迭代文件中的行,包括换行符\ n(和\ r)。 因此,您可能正在尝试打开文件'filename \ n.txt',这不是您的意思。

与解决方案一样,使用strip:

with open(''+line.strip()+'.txt') as f: pass