Python本地文件合并(csv)
生活随笔
收集整理的這篇文章主要介紹了
Python本地文件合并(csv)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Python本地文件合并
- 一、單文件之間合并
- 二、單個(gè)文件夾底下多個(gè)文件合并
- 三、多個(gè)文件夾底下多個(gè)文件合并
- 四、多文件夾[函數(shù)遞歸]
注:
一、單文件之間合并
首先,要查詢目錄底下的文件要導(dǎo)入OS。并且我們要將.csv文件以pandas的dataframe底下,因此要導(dǎo)入PANDAS,另外由于我們要遍歷目錄,因此導(dǎo)入 GLOB:
import os import pandas as pd import glob注:
合并完成之后就會(huì)多出一個(gè)f1112.csv文件:
然而打開(kāi)f1112.csv后發(fā)現(xiàn)合并后的文件有一些臟數(shù)據(jù)沒(méi)有整理:
這時(shí)候我們?cè)囋噑kiprows:
在讀取文件的時(shí)候設(shè)置skiprows參數(shù)的值,設(shè)置為1,會(huì)跳過(guò)一行,這里是要將第二個(gè)文件的索引屬性給去掉,因?yàn)橐呀?jīng)和第一個(gè)文件合并了,而第一個(gè)文件有索引屬性了。
在本地目錄中打開(kāi)該文件:
二、單個(gè)文件夾底下多個(gè)文件合并
csv_list=glob.glob('../input/covid19temp/2020/*.csv') # 如果不加上*的話拿到的就是目錄的名稱,如果加上*,拿到的就是完整的目錄數(shù)據(jù) print(csv_list) for i in csv_list: fr=open(i,'r').read()with open('2020csvdata.csv','a') as f:f.write(fr)f.close() print('數(shù)據(jù)文件合并完成!')
合并之后使用pd.read_csv讀取文件數(shù)據(jù),一共有20W+的疫情數(shù)據(jù)記錄:
三、多個(gè)文件夾底下多個(gè)文件合并
import os import pandas as pd import glob import openpyxl import numpy as nppath='../input/covid19temp' # 寫的路徑 csv_lists=[] # 該列表的作用# 是否更新目錄判斷: if os.path.isdir(path): #使用os.path.isdir判斷path是否是路徑if not path.endswith("/"):# 如果該路徑的最后沒(méi)有加上'/'的話,會(huì)幫忙加一個(gè)/path+="/"print(path)
如上圖所示,路徑后面多了一個(gè) ‘/’,否則路徑會(huì)找不到
文件操作:
四、多文件夾[函數(shù)遞歸]
import os import pandas as pd def mergeFiles(parent,path="",pathdeep=0):fileAbsPath=os.path.join(parent,path)if os.path.isdir(fileAbsPath)==True:if (pathdeep!=0 and('.ipynb_checkpoints' not in str(fileAbsPath))):print('=='+path)for filename2 in os.listdir(fileAbsPath):mergeFiles(fileAbsPath,filename2,pathdeep=pathdeep+1)else:print(path) path=input("請(qǐng)輸入需要的文件注主目錄:") mergeFiles(path)總結(jié)
以上是生活随笔為你收集整理的Python本地文件合并(csv)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: html中只居中偏右怎么设置,写字如何把
- 下一篇: python分行输入_python换行输