私のcsvファイルの最後に4文字列を追加するpythonスクリプトがあります。最初の列はユーザーの電子メールアドレスであり、csvを検索してそのユーザーの電子メールアドレスが既にファイル内にあるかどうかを確認したい場合は、その行全体を4つの新しい文字列で上書きしたいのですが、最後にそれを追加するだけです。私は電子メールの最初の列を検索し、それがあればそれは私に行を与えます。電子メールが行にある場合csv内の特定の行をPython 2.7のインデックスで上書きするにはどうすればいいですか
with open('Mycsvfile.csv', 'rb') as f:
reader = csv.reader(f)
indexLoop = []
for i, row in enumerate(reader):
if userEmail in row[0]:
indexLoop.append(i)
f.close()
with open("Mycsvfile.csv", 'ab') as file222:
writer = csv.writer(file222, delimiter=',')
lines = (userEmail, userDate, userPayment, userStatus)
writer.writerow(lines)
file222.close()
私はこのような何かをしたい、それが私の行のインデックスを与えるだろうと私は私の新しいデータで行全体を上書きするためにそれを使用することができます。それがない場合は、ファイルを最後に追加します。 例:
with open('Mycsvfile.csv', 'rb') as f:
reader = csv.reader(f)
new_rows = []
indexLoop = []
for i, row in enumerate(reader):
if userEmail in row[0]:
indexLoop.append(i)
new_row = row + indexLoop(userEmail, userDate, userPayment, userStatus)
new_rows.append(new_row)
else:
print "userEmail doesn't exist"
#(i'd insert my standard append statement here.
f.close
#now open csv file and writerows(new_row)
完全な答えは、@Batman、+1です。 – bernie