0
CSVの特定の行をターゲットにして特定の文字が一致した場合に上書きする目的で、ここにいくつかのPythonコードがあります。Pythonはcsvファイルの特定の行と列を編集します
import csv
line_count = 0
marked_item = int(input("Enter the item number:"))
with open("items.csv", 'r') as f:
reader = csv.reader(f, delimiter=',')
title = next(reader)
print(title)
print(title[3])
lines = []
for line in reader:
if title[3] == 'a':
line_count += 1
if marked_item == line_count:
title[3] = 'b'
lines.append(line)
with open("items.csv", 'w', newline='') as f:
writer = csv.writer(f, delimiter=',')
writer.writerow(title)
writer.writerows(lines)
このコードは、私が望むのとほとんど同じ方法で動作しますが、最初の行以外の行は編集できません。出力の例このコードは、次のとおり
red,12.95,2,b #note, this change from 'a' to 'b'
blue,42.5,3,a #How can I target this row and change it?
green,40.0,1,a
問題私はそれが行のように別の行をターゲットにしている「ブルー、42.5、A」。私のコードは目標を設定できず、値 'a'を 'b'に変更します。
を:「行の場合、[3] == 『R』: IndexError:範囲外のインデックスをリストする ' –
'の場合、 'r'が 'if line [3] ==' r ''であることに注意してください。私は 'a'の代わりに 'r'を反映するようにコードを変更しました –
空の行が必要です。私は行の長さのチェックを追加しました。 –