比方说,我有两个csv文件-fileone
和filetwo
-都具有列[类别,名称,价格,供应商]。在vendor
列中,fileone的值为“ Georgia Malayv”,filetwo的值为“ Georgia”。如您所见,fileone
和filetwo
在“供应商”列中均以“乔治亚州”作为值。我希望代码检查列供应商,并且我想要一个新的csv文件来打印几乎相同的值。
例如:
fileone
具有以下值:
['France', 'Pizza', 12.55, 'Georgia Malayv']
filetwo
具有以下值:
['Belgium', 'Steak', 15.99, 'Georgia']
如果您查看两个文件的最后一个值,则会看到“ Georgia”在两个文件中,但它们彼此不相等。我怎么能告诉计算机这些行是-根据我的说法,因为两个文件都有'Georgia'-彼此相等,并且可以打印filetwo
的整行?
可以做到吗?如果我对自己的解释不够清楚,我很乐意编辑问题或回答您的问题。这是我尝试过的:
with open('product1.csv', 'r') as mp, open('product2.csv', 'r') as yb:
fileone = mp.readlines()
filetwo = yb.readlines()
with open('update.csv', 'w') as outFile:
for mp_item in fileone:
for yb_item in filetwo:
# mp_item[3] is the vendor column
if mp_item[3] == True:
outFile.write(mp_item)
此代码未在新的csv文件中打印任何内容。
答案 0 :(得分:0)
这应该做到:
with open ("update.csv", "w") as output_file: for mp_item in fileOne: for yb_item in fileTwo: shortest = min (mp_item [3], yb_item [3]) longest = max (mp_item [3], yb_item [3]) if shortest in longest: outFile.write (mp_item)
这将确定哪个较长,哪个较短,并检查较短的那个是否在较长的那个。