0
CSV의 특정 행을 대상으로 사용자 입력을 취한 다음 특정 문자가 일치하면이를 덮어 쓸 수있는 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'를 'b'로 변경합니다.
이 오류를 얻을 : : R ''라인 [3] == 경우 '를 IndexError : 목록의 인덱스 범위가 ' –
'인 경우 'line in [3] =='r ''에 'r'이 들어 있습니다. 'a'대신 'r'을 반영하도록 코드를 변경했습니다. –
빈 줄이 있어야합니다. 행에 길이 검사를 추가했습니다. –