2

我有以下 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)

这会将可用数量列中的所有值变为 10,但是我只想更改超过 10 的值。如何将值限制为 10?

4

1 回答 1

3

您正在比较字符串和整数;在比较之前先变成row(10)整数:

for row in r:
    if int(row[3]) >= 10:
        row[3] = 10
    w.writerow(row)

将输出row[3]设置为整数并不重要,因为它将再次为您返回字符串。csv.writer()

于 2013-04-30T21:39:06.240 回答