我有以下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
我需要将可用数量限制为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?
你正在比较字符串和整数;比较前先将row(10)
转换为整数
for row in r:
if int(row[3]) >= 10:
row[3] = 10
w.writerow(row)
您将row[3]
设置为输出的整数并不重要,因为csv.writer()
将再次为您将其转回字符串。