我有以下CSV文件。
Item Number,Item Description,List Price,QTY Available
3079-000-006-000,Covert GTX Liner Size 6,99.99,8
3079-000-007-000,Covert GTX Liner Size 7,99.99,36
3079-000-008-000,Covert GTX Liner Size 8,99.99,181
我需要将QTY限制为10.因此,如果row [3]大于10,我希望值10显示在该角色中。到目前为止,我有:
import csv
import os
inputFileName = "temp.csv"
outputFileName = os.path.splitext(inputFileName)[0] + "_modified.csv"
with open(inputFileName, "rb") as inFile, open(outputFileName, "wb") as outfile:
r = csv.reader(inFile)
w = csv.writer(outfile)
r.next()
w.writerow(['Item Number', 'Item Description', 'List Price', 'QTY Available'])
for row in r:
if row[3] >= 10:
row[3] = 10
w.writerow(row)
这会将QTY Available列中的所有值都设置为10但是我只想更改超过10的值。如何将值限制为10?
答案 0 :(得分:3)
您正在比较字符串和整数;在比较之前先将row(10)
转换为整数:
for row in r:
if int(row[3]) >= 10:
row[3] = 10
w.writerow(row)
将row[3]
设置为输出的整数并不重要,因为csv.writer()
会再次将其变回字符串。