2

私はこのコードを書きます:

f = open('example.txt','r')
lines = f.readlines()

for i, line in enumerate(f):
if i < 3:
   lines = ['LC '+line for line in lines]
   with open('./example.txt', 'w') as f:
      f.writelines(lines)
      f.close()
elif i < 5:
    lines = ['LB '+line for line in lines]
    with open('./example.txt', 'w') as f:
        f.writelines(lines)
        f.close()
elif i > 6:
    break

 f.close()

11行のファイルがあります。すべての行から最初に何かを書きたいです。単語は最初の3行と他の2行で異なります。私が間違っていることを教えてください。

4

3 に答える 3

2
lines = [("LC" if i < 3 else "LB")+line for i,line in enumerate(lines)]

トリックをするかもしれない

于 2012-10-10T14:10:36.937 に答える
1

にとってlines = ['LC '+line for line in lines]

LC最初の3行だけでなく、すべての行に書き込んでいます。

lines = ['LB '+line for line in lines]ここでも同じです

最初に適切なプレフィックスを行に追加し、その後実際に行を書き込むことができます。のような何か:

for i, line in enumerate(lines):
  if i < 3:
     # add prefix to line
  if 3 < i < 5:
     # add correct prefix

これで、行に適切なプレフィックスが付けられ、すべてをファイルに書き込むことができます。

于 2012-10-10T14:08:24.360 に答える
1

2番目の条件が少し混乱しているようです。最初の3行に何かを書いていて、次に4行目と5行目に何かを書いている場合は、条件を変更する必要があります。

2番目のelifを次のように変更してみてください。

elif i <= 5 and i >=3:

また、アドバイスの一言ですが、毎回書き込むためにファイルを開く必要はありません。最初の行を次のように設定できます。

f = open('example.txt','rw')

これにより、ファイルが開き、ファイルへのハンドルが与えられ、ファイルの読み取りと書き込みが可能になります。

于 2012-10-10T14:11:19.393 に答える