我尝试做的是从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'陈述是我认为我搞砸的地方。
答案 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