连接时我得到奇怪的输出。 使用时:
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。 为什么会这样?
答案 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