2012-07-09 99 views
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在第二行。 這是爲什麼發生?

回答

0

您行:

for line in getReference: 

將遍歷文件中的行,包括換行符\ n(和\ r)。 因此,您可能試圖打開文件'filename \ n.txt',這不是您的意思。

由於作爲解決方案,使用帶:

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

謝謝@Andre百隆 – 2012-07-09 18:07:50

3

這是因爲line以換行字符'\n'結尾。這個固定的

一種方法是:

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

感謝@ inspectorG4dget ..現在的工作 – 2012-07-09 18:01:21

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 
+0

謝謝你這麼多@thegrinner – 2012-07-09 18:07:36