Python Извлечение имени всех CSV-файлов из пути и запись каждого в другую папку - PullRequest
0 голосов
/ 12 июня 2018

Я пытаюсь открыть все файлы из папки, сохранить их в кадре данных и добавить каждый CSV-файл с другим CSV-файлом с именем Append.csv и пытаюсь записать все файлы с их именами вдругая папка.

Например, у меня есть 5 CSV-файлов, которые сохраняются в папке с именем CSV FILES FOLDER .Эти файлы F1.csv , F2.csv , F3.csv , F4.csv и F5.csv .Я пытаюсь открыть каждый файл, используя pandas, и я делаю это в цикле for, Append.csv , и теперь сохраняю его в другой папке с именем NEW CSV FILES FOLDER как:

F1_APPENDED.csv 
F2_APPENDED.csv
F3_APPENDED.csv
F4_APPENDED.csv

Другими словами, _APPENDED добавляется к каждому файлу, а затем сохраняется файл с новым именем, имеющим _APPENDED.

Я уже определил путь для этой папки, ноне могу спасти это.Код следующий:

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')

Как я могу это сделать?Я пытался найти официальную документацию, но ничего не понял

Любая помощь будет полезна

Спасибо

1 Ответ

0 голосов
/ 12 июня 2018

Здесь я добавил строку в цикл for, где вы можете получить только имя файла.Вы можете использовать его вместо полного пути к файлу, когда будете писать файл и указывать выходное имя файла .csv.

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')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...