本节给大家讲如何批量的合并TXT文件,先讲讲TXT文件的概念,TXT文件是微软在操作系统上附带的一种文本格式,是最常见的一种文件格式 ,主要存文本信息,TXT文件格式具有体积小、存储简单方便;格式比较简单,不会中毒,且是电脑和很多移动设备的通用格式的特点,所以在日常中使用TXT文件格式的数据比较多。
在本节的案例中,一共存在四个文件夹内容,包含四种不同类型的电影,其中,(D)电影类型:动作电影、(Q)电影类型:奇幻电影、(W) 电影类型:战争电影、(X)电影类型:喜剧电影。
数据表格的字段包括电影名称、上映时间、发行公司、电影导演、电影主演、累计票房(万),数据表格如下所示。
数据获取
import ospath=r'C:\Users\尚天强\Desktop\中国电影'pathlist=os.listdir(path)print(pathlist)
['(D)电影类型.txt', '(Q)电影类型.txt', '(W)电影类型.txt', '(X)电影类型.txt']
import datetimetoday=str(datetime.date.today())day=today.replace("-","")print(day)
20210912
import pandas as pdmerge_data=pd.DataFrame(columns=['电影名称','上映时间','发行公司','电影导演','电影主演','累计票房(万)'])print(merge_data)
for file_name in pathlist:rawdata=open(r'C:\Users\尚天强\Desktop\中国电影'+'\\'+file_name,'r',encoding='utf-8')line=rawdata.readline()lines=rawdata.readlines()print(line)print(lines)
data_lines=pd.DataFrame(lines)data_lines.columns=["中国电影数据"]print(data_lines)
res=data_lines["中国电影数据"].str.split(',',expand=True)res.head()
res=res.iloc[:,[0,1,2,3,4,5]]res.columns=['电影名称','上映时间','发行公司','电影导演','电影主演','累计票房(万)']res.head()
type=file_name[0:3]print(type)Dict = {"(D)":"动作电影","(Q)":"奇幻电影","(W)":"战争电影","(X)":"喜剧电影"}res['电影类型'] =typeres['电影类型']=Dict[type]print(res['电影类型'])
result=merge_data.append(res,sort=False) #sort=False合并数据时,避免顺序出错result["处理日期"]=daymerge_data=result.drop_duplicates()merge_data.head()
merge_data.to_excel(r'C:\Users\尚天强\Desktop'+"\\"+"数据合并.xlsx",index=False)
import osimport pandas as pdimport datetimepath=r'C:\Users\尚天强\Desktop\中国电影'pathlist=os.listdir(path)today=str(datetime.date.today())day=today.replace("-","")merge_data=pd.DataFrame(columns=['电影名称','上映时间','发行公司','电影导演','电影主演','累计票房(万)'])for file_name in pathlist:rawdata=open(path+'\\'+file_name,'r',encoding='UTF-8')line=rawdata.readline()lines=rawdata.readlines()data_lines=pd.DataFrame(lines)data_lines.columns=["中国电影数据"]#数据分列res=data_lines["中国电影数据"].str.split(',',expand=True)res=res.iloc[:,[0,1,2,3,4,5]]res.columns=['电影名称','上映时间','发行公司','电影导演','电影主演','累计票房(万)']#电影类型打标type=file_name[0:3]res['电影类型'] =typeDict = {"(D)":"动作电影","(Q)":"奇幻电影","(W)":"战争电影","(X)":"喜剧电影"}res['电影类型']=Dict[type]result=merge_data.append(res,sort=False) #sort=False合并数据时,避免顺序出错#数据日期标注,数据去重result["数据日期"]=daymerge_data=result.drop_duplicates()merge_data.to_excel(path+"\\"+"数据合并.xlsx",index=False)#数据导出

