簡體   English   中英

如何僅將包含特定字符串的行(在CSV文件中)另存為單獨的CSV文件?

[英]How to save only lines containing a particular String (in a CSV file) as a separate CSV file?

我只想將包含特定字符串(在CSV文件中)的行另存為單獨的CSV文件?

考慮以下文件:

foo,bar,zig,zag
zog,bar,zag,zag
qux,zig,zag,zag
quuux,bar,zag,zag

過濾為條形時,結果應為單獨的CSV文件:

foo,bar,zig,zag
zog,bar,zag,zag
quuux,bar,zag,zag

最有效的方法是什么? 有沒有執行此操作的代碼,因為我需要為大約200個諸如“ bar”之類的名稱執行此操作。

您可以按某一列過濾每一行(假設它始終是同一列):

import csv

names = ['bar', 'foo', 'foobar']
data = []

# read data
with open('all.csv', 'r') as csvfile:
    spamreader = csv.reader(csvfile, delimiter=',')
    for row in spamreader:
        if row[1] in names:
            data.append(row)

# maybe some more processing
# ...

# write back data that meets criteria
with open('bar.csv', 'wb') as csvfile:
    spamwriter = csv.writer(csvfile, delimiter=',')
    spamwriter.writerows(data)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM