如何使用Python在多个CSV文件中搜索字符串

如何使用Python在多个CSV文件中搜索字符串,python,python-3.x,pandas,csv,Python,Python 3.x,Pandas,Csv,我有多个不同部门的.csv文件,具有相同的标题(名称、完整地址、部门),完整地址是一个大约20-50字的长字符串,它包括包括城市在内的所有详细信息。 我的每个.CSV文件包含大约10万行,在同一个文件夹中,我有大约400个这样的文件 我想做的是,我想为居住在纽约的所有员工(在阅读所有csv文件后)手动创建一个单独的csv文件,(生成的文件应包含姓名、完整地址和部门)。这是不可能的,但我知道在python中是可能的 有人能帮我解决这个问题吗?正如建议的那样,由于文件的大小,您可能应该一次解析一个文

我有多个不同部门的.csv文件,具有相同的标题(名称、完整地址、部门),完整地址是一个大约20-50字的长字符串,它包括包括城市在内的所有详细信息。 我的每个.CSV文件包含大约10万行,在同一个文件夹中,我有大约400个这样的文件

我想做的是,我想为居住在纽约的所有员工(在阅读所有csv文件后)手动创建一个单独的csv文件,(生成的文件应包含姓名、完整地址和部门)。这是不可能的,但我知道在python中是可能的


有人能帮我解决这个问题吗?

正如建议的那样,由于文件的大小,您可能应该一次解析一个文件中的所有数据,并将任何匹配的行写入一个新的CSV文件。这种方法不需要加载整个文件,因此可以处理任何大小的文件

这可以通过以下方式完成:

import csv
import glob

write_header = True
output_csv = 'new york.csv'     # assume this is not already used

with open(output_csv, 'w', newline='') as f_output:
    csv_output = csv.writer(f_output)

    for csv_filename in glob.glob('*.csv'):
        if csv_filename != output_csv:
            with open(csv_filename) as f_input:
                csv_input = csv.reader(f_input)
                header = next(csv_input)

                if write_header:
                    csv_output.writerow(header)
                    write_header = False

                for row in csv_input:
                    if "new york" in row[1].lower():
                        csv_output.writerow(row)

它应该生成一个输出
newyork.csv
文件,其中包含地址列包含单词
newyork
的任何行。显然,您可能需要改进此测试以覆盖格式错误的地址。

您已经创建了数据帧吗?如果您需要解析出城市,请添加您的数据样本,请阅读我尚未创建数据框架或任何代码。我只是个初学者。一种可能的方法是:在目录中生成csv文件列表。创建空列表y。迭代文件列表。使用csv模块()逐行读取文件。检查行中是否存在字符串“newyork”,如果不是重复的,则存储在y中。读完后转换为数据文件并保存到CSV。@ Enc,我必须考虑每个文件大约400 MB,并且有400个这样的文件。一个接一个地读,会不会让我的系统崩溃?