gpt4 book ai didi

python - 从一个目录加载所有 csv/txt 文件并通过 python 合并它们

转载 作者:太空狗 更新时间:2023-10-30 01:41:35 26 4
gpt4 key购买 nike

我有一个文件夹,其中包含数百个(可能超过 1k)按时间顺序排列的 csv 数据文件。理想情况下,这些数据将在一个 csv 中,这样我就可以一次性分析所有内容。我想知道的是,有没有一种方法可以使用 python 将所有文件附加到另一个文件。

我的文件存在于如下文件夹位置:

C:\Users\folder\Database Files\1st September
C:\Users\folder\Database Files\1st October
C:\Users\folder\Database Files\1st November
C:\Users\folder\Database Files\1st December
etc

每个文件夹内有 3 个 csv(我随意使用术语 csv,因为这些文件实际上保存为 .txt 文件,其中包含由竖线 | 分隔的值)

假设这些文件被称为:

MonthNamOne.txt
MonthNamTwo.txt
MonthNameOneTwoMurged.txt

我如何,甚至可能编写一些代码来遍历此目录中的所有这些文件夹,然后将所有 OneTwoMurged.txt 文件合并在一起?

最佳答案

对于.csv后缀文件夹中的所有文件

import glob
import os

filelist = []

os.chdir("folderwithcsvs/")
for counter, files in enumerate(glob.glob("*.csv")):
filelist.append(files)
print "do stuff with file:", files, counter

print filelist

for fileitem in filelist:
print fileitem

显然,“做事的部分”取决于你想对文件做什么,这就是获取你的文件列表。

如果你想每月对文件做一些事情,那么你可以使用 datetime 并创建可能的月份,同样适用于天数或年度数据。

例如,对于名称为 Month Year.csv 的每月文件,它将查找每个文件。

import subprocess, datetime, os

start_year, start_month = "2001", "January"

current_month = datetime.date.today().replace(day=1)
possible_month = datetime.datetime.strptime('%s %s' % (start_month, start_year), '%B %Y').date()
while possible_month <= current_month:
csv_filename = possible_month.strftime('%B %Y') + '.csv'
month = possible_month.strftime('%B %Y').split(" ")[0]
year = possible_month.strftime('%B %Y').split(" ")[1]
if os.path.exists("folder/" + csv_filename):
print csv_filename
possible_month = (possible_month + datetime.timedelta(days=31)).replace(day=1)

显然,您可以将其更改为您觉得合适的任何方式,如果您需要更多或这是否足够,请告诉我。

关于python - 从一个目录加载所有 csv/txt 文件并通过 python 合并它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19613716/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com