2017-07-07 19 views
0

以下のコードを記述しました。私はファイルを読み込み、最初のインデックスから要素を削除していますが、削除していません。助けてもらえますか?要素がリストから削除されていません

import os 
fo = open('temp_file.txt', 'w') 
fo.write(output1) 
fo.close() 
fo = open('temp_file.txt', 'r') 
temp_list = fo.readlines() 
fo.close() 
os.remove('temp_file.txt') 
del temp_list[0] 
print (temp_list) 
+0

削除されていない、正確には何? os.remove( 'temp_file.txt')?あなたのコードを実行し、fo.write(output1)をfo.write( "test")に変更しなければなりませんでした。私の結果は単純に[]で、実行後に.txtが削除されました。私の提案は、 "C:\ Users \ someUser \ Desktop \ program \ temp_file.txt"のような長いパスをos.remove()にすることです。 – J0hn

+0

test1 \ ntest2 \ ntest3 \ nを使って問題を再現できません。 "' 'output1'のために' '。 – yinnonsanders

+0

del temp_list [0]は、リストから最初の要素を削除していません。 –

答えて

0

これはおそらく問題の解決方法ですか?

import os 
fo = open('temp_file.txt', 'w') 
fo.write("test\n") 
fo.write("test2\n") 
fo.write("test3\n") 
fo.close() 
fo = open('temp_file.txt', 'r') 
temp_list = [] 
for i in fo.readlines(): 
    temp_list.append(i) 
fo.close() 
os.remove('temp_file.txt') 
print(temp_list) 
del temp_list[0] 
print (temp_list) 

出力:

['test\n', 'test2\n', 'test3\n'] 
['test2\n', 'test3\n'] 
+0

はい、この方法でうまくいくでしょうが、元の方法で何が間違っていたのですか、そこにもリストが生成されました。そしてラインの数は減った。 –

+0

正直言って@ゴールドトミー私は笑を知らない。私はあなたがこれを単に 'del fo.readlines()[0]'に減らすことができるかもしれないと思う。fo.readlines()はそれ自身のリストを作成しているので。 temp_list.append(fo.readlines())を実行すると、実際にはその内部に入れ子になったfo.readlines()リストを持つリストが作成されました。セクシー、それが動作し、あなたを更新する場合は表示されます。編集:無視、 'fo.readlines()[0]'は無効です。うーん。なぜ 'fo'readlines()を' = 'メソッドを使ってリストに簡単に翻訳できないのか、あまりよく分かりません。 – J0hn

+0

str = fo.readline(); while str:; temp_list = str; str = fo.readline(); これは1つのリストのみを生成します。しかし、readlinesは1行ですべての作業を行います –

関連する問題