首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python从路径获取所有CSV文件的名称并将每个文件写入不同的文件夹

Python从路径获取所有CSV文件的名称并将每个文件写入不同的文件夹
EN

Stack Overflow用户
提问于 2018-06-13 01:58:16
回答 1查看 80关注 0票数 0

我正在尝试打开文件夹中的所有文件,将它们存储在数据帧中,并为每个csv文件附加另一个名为Append.csv的csv文件,并尝试将所有具有其名称的文件写入不同的文件夹。

例如,我有5个csv文件保存在名为CSV files文件夹的文件夹中。这些文件是F1.csvF2.csvF3.csvF4.csvF5.csv。我尝试做的是使用pandas打开每个文件,我在一个for循环中这样做,Append.csv,现在将它存储在另一个名为 CSV FILES 的文件夹中,如下所示:

代码语言:javascript
复制
F1_APPENDED.csv 
F2_APPENDED.csv
F3_APPENDED.csv
F4_APPENDED.csv

换句话说,在每个文件中添加_APPENDED,然后保存具有_APPENDED的具有新名称的文件。

我已经定义了此文件夹的路径,但无法保存它。代码如下:

代码语言:javascript
复制
import pandas as pd
import glob
import os.path
import pathlib

path =r'C:\Users\Ahmed Ismail Khalid\Desktop\CSV FILES FOLDER'

allFiles = glob.glob(path + "/*.csv")

path1 = r'C:\Users\Ahmed Ismail Khalid\Desktop\Different Folder\Bitcoin Prices Hourly Based.csv'

outpath = r'C:\Users\Ahmed Ismail Khalid\Desktop\NEW CSV FILES FOLDER'



for f in allFiles:
    file = open(f, 'r')
df1 = pd.read_csv(path1)
df2 = pd.read_csv(f)
output = pd.merge(df1, df2, how="inner", on="created_at")
df3 = output.created_at.value_counts().rename_axis('created_at').reset_index(name='count')
df3 = df3.sort_values(by=['created_at'])
#print(df3,'\n\n')
df3.to_csv(outpath+f, encoding='utf-8',index=False)
#print(f,'\n\n')

我该怎么做呢?我试着查阅官方文件,但什么也看不懂

任何帮助都将不胜感激

谢谢

EN

回答 1

Stack Overflow用户

发布于 2018-06-13 02:48:55

在这里,我在for循环中添加了一行,您可以在其中仅获取文件名。在写入文件并指明输出.csv文件名时,您可以使用它来代替文件的完整路径。

代码语言:javascript
复制
import pandas as pd
import glob
import os.path
import pathlib

path =r'C:\Users\Ahmed Ismail Khalid\Desktop\CSV FILES FOLDER'

allFiles = glob.glob(path + "/*.csv")

path1 = r'C:/Users/Ahmed Ismail Khalid/Desktop/Different Folder/Bitcoin Prices Hourly Based.csv'

# You need to have a slash at the end so it knows it's a folder
outpath = r'C:/Users/Ahmed Ismail Khalid/Desktop/NEW CSV FILES FOLDER/'



for f in allFiles:
    file = open(f, 'r')
    _, fname = os.path.split(f)
    fname, ext = os.path.splittext(fname)

    df1 = pd.read_csv(path1)
    df2 = pd.read_csv(f)
    output = pd.merge(df1, df2, how="inner", on="created_at")
    df3 = output.created_at.value_counts().rename_axis('created_at').reset_index(name='count')
    df3 = df3.sort_values(by=['created_at'])
    #print(df3,'\n\n')
    df3.to_csv(outpath+fname+'_appended.csv', encoding='utf-8',index=False)
    #print(f,'\n\n')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50823134

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档