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 を印刷すると、1 行のテキストは表示されませんが、代わりに .fsta が 2 行目に表示されます。なぜこれが起こるのですか?

4

3 に答える 3

3

これは、改行文字でline終了するためです。'\n'

これを修正する1つの方法は次のとおりです。

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

改行区切り文字がOSに対して正しくない可能性があることに注意してください。その場合は、次のことができます。

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 に答える