查找特定的vocab并提取一行csv并在新的csv文件中进行转换

时间:2018-11-05 10:55:44

标签: python csv find transform extract

我有30,000的{​​{1}}行列表,我想在找到特定单词并将其写到新的csv文件中之后搜索这些行和列。

例如:

csv files

我想知道谁是job ,position , email , adress joe ,validi , ceo , joevalidi@yahoo.com ,然后解压缩并将其保存在不同的ceo文件中。

2 个答案:

答案 0 :(得分:0)

您可以尝试使用:使用re模块

import re

pattern = re.compile(r'ceo')
ceo_list = []

with open('managers.csv', 'r') as f:  ## where managers.csv is the file you shared above
    for i in f:
        if pattern.search(i):
            ceo_list.append(i.split(',')[0].strip())

现在,您已将所有ceo存储在列表ceo_list中。只需将其写入单独的文件中即可:

with open('ceo.csv', 'w') as f:
    for item in ceo_list:
        f.write("%s\n" % item)

让我知道这是否有帮助。

答案 1 :(得分:0)

说这是您位于test.txt的输入文件/Users/redwing/temp/

/Users/cat/meow/meoew
/Users/cat/meow/meoew2
/Users/dog/bow/wow

然后该脚本将输出仅包含包含cat的行的文件。

in_fname = '/Users/redwing/temp/test.txt'
out_fname = '/Users/redwing/temp/test_output.txt'

f_out = open(out_fname, 'w+')
f_in = open(in_fname, 'r')
for content in f_in:
    if 'cat' in content:
        f_out.write(content)
f_in.close()
f_out.close()

此解决方案的妙处在于,绝不会将所有文件读入内存,因此过滤3000或3000万行无关紧要。

PS。编辑之前已提交我的回复。显然,您只需要将cat替换为ceo