迭代行并根据某些行标准写入新文件

时间:2017-10-02 19:32:38

标签: python csv

我尝试做的是从CSV中的列读取特定值,并将其相应的行写入python中的新文件。我能够将每个行成功编写到一个新的.txt文件中,但是我在将特定行写入新文件时遇到了麻烦。

数据如下:

card_no    items    qty    price
10001      carrot   3      15.50
10002      squash   5      12.68
10003      pear     5      13.50

以下是读取zip文件的代码(单个.csv包含在其中)并遍历每一行/将行写入新的txt文件。

import os
import zipfile

with open(working_directory + "crash_test.txt",'w') as ofile :
    with zipfile.ZipFile('/Users/MikeRalston/Desktop/testArchive2.zip') as z:
        for filename in z.namelist():
            if not os.path.isdir(filename):
                with z.open(filename) as f:
                    for idx, line in enumerate(f.readlines()) : 
                        ###if "card_no" == int(10001):
                            line = line.decode('UTF-8').split (",")

                            ofile.write("\t".join(line) + "\n")

' if'陈述是我认为我搞砸的地方。

1 个答案:

答案 0 :(得分:0)

由于您没有单独阅读标题,因此无法使用if "card_no" ==

我们从阅读文件获取的所有信息都是一行。分割后,我们会得到一个用逗号分隔的列表。现在我们可以使用line[0]使用第一列并使用该值进行比较。

我们正在比较的是line[0]的值是一个数字,等于1001

###if "card_no" == int(10001):之后 使用以下,

line = line.decode('UTF-8').rstrip().split ()
if line[0].isdigit() and line[0] == '10001':
    ofile.write("\t".join(line) + "\n")

ofile的内容

  

10001胡萝卜3 15.50