2017-09-09 25 views
-1

F =オープン( 'some_file.txt'、 'A') 文字の= "ACGT"関数の出力をファイルに書き込む方法は?

デフneighbors2(パターン、D):

sum ([neighbors(pattern, d2) for d2 in range(d + 1)], []) 


for i in range(0,len(sum)): 
    f.write(sum[i]) 
f.close() 
assert(d <= len(pattern)) 

if d == 0: 
    return [pattern] 

r2 = neighbors(pattern[1:], d-1) 
r = [c + r3 for r3 in r2 for c in chars if c != pattern[0]] 

if (d < len(pattern)): 
    r2 = neighbors(pattern[1:], d) 
    r += [pattern[0] + r3 for r3 in r2] 

return r 

私はの出力を書き込むしようとしていますパターン ''を除いてこの関数(これはex:ACGの文字列)ですが、試したコードはエラーを生成します。生産 エラー:

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "test14.py", line 9, in neighbors2 
    for i in range(0,len(sum)): 
TypeError: 'builtin_function_or_method' object is not iterable 

がUPDATE: 私は、リストから「」マークを削除する方法を知っておく必要がありfile.Butに関数を書く出力に管理:(

+0

エラーは何ですか? –

+0

TypeError: 'builtin_function_or_method'オブジェクトは反復不可能です – Nirmani

+0

質問を編集してエラーの完全なトレースバックを含めます。コメントに入れないでください –

答えて

0

を使用withファイルが正常にブロックを出るときclose() dは確実に、例えば

with open('some_file.txt', 'a') as f: 
    for i in range(len(pattern)): 
     f.write('%d\n' % i) 

また、条件文では括弧を省略します。 if d < 2:を使用してください。if (d < 2):は使用しないでください。

そしてアサートの周りに間違いなく括弧を省略します。それをフレーズassert d <= len(pattern)としてください。

+0

お返事ありがとうございました。しかし、それはエラーを返します: ファイル ""、行1、 ファイル "test14.py"、行8、近隣の2 の範囲(len(合計))のファイル: TypeError: 'builtin_function_or_method'型のオブジェクトにlen()がありません。この関数の出力を反復できないようです。 – Nirmani

+0

これで出力をファイルに書き込むことができます。しかし、私はまだ文字列から ''を削除することはできません:( – Nirmani

関連する問題