歡迎大家關(guān)注公眾號(hào)【哈希大數(shù)據(jù)】
一、python實(shí)例 合并文件并去重
#!/usr/bin/python#
-*- coding: utf-8 -*-
import os
import pandas as pd
import glob
import csv
def merge_csv(file_address):
csv_list = glob.glob(file_address + '*.csv')
print('該文件下下一共有', len(csv_list),'個(gè)csv文件需要合并')
for one_csv in csv_list:
print(one_csv) # read方法是以字符串形式獲取內(nèi)容
one_open = open(one_csv,'r').read()
with open('D:/try/merge_result.csv','a') as f:
f.write(one_open)
print('合并{}個(gè)文件完成'.format(len(csv_list))) return 'D:/try/merge_result.csv'
def drop_duplicate(file):
df = pd.read_csv(file)
datalist = df.drop_duplicates() datalist.to_csv(file,header=False)
print('去重操作完成')
if __name__ == '__main__':
file_address = 'D:\\test_accounts1\\'
merge_result = merge_csv(file_address) drop_duplicate(merge_result)
運(yùn)行結(jié)果:
D:\anaconda python\python3.6.exe" D:/vernacular/coding_ziyi/merge_csv.py該文件下下一共有 6 個(gè)csv文件需要合并D:\test_accounts1\accounts.csvD:\test_accounts1\accounts_all_0.csvD:\test_accounts1\accounts_test_15.csvD:\test_accounts1\accounts_test_22.csvD:\test_accounts1\success_accounts_15.csvD:\test_accounts1\test_one.csv合并6個(gè)文件完成去重操作完成Process finished with exit code 0
二、python介紹 對(duì)文件的操作
我們已知程序是無(wú)法直接讀寫(xiě)磁盤(pán)中的文件蚂会,而是請(qǐng)求操作系統(tǒng)提供數(shù)據(jù)操作接口,為我們生成一個(gè)文件對(duì)象耗式,從而獲取或?qū)懭胄枰臄?shù)據(jù)胁住。因此在python中操作文件也不例外趁猴,首先使用Open打開(kāi)文件的常規(guī)的語(yǔ)法為:
open(' D:/try/merge_result.csv', 'r', encoding='gbk', errors='ignore')
1、文件讀取第一個(gè)參數(shù):讀取位置的設(shè)置(位置參數(shù)彪见,必須指定):
使用相對(duì)位置:open('../data/merge_result.csv'),最終執(zhí)行完成將會(huì)在data文件下保存合并數(shù)據(jù)的結(jié)果儡司。從序號(hào)可以看出合并數(shù)據(jù)的結(jié)果確實(shí)是來(lái)自不同的文件。
同理也可以使用絕對(duì)位置:'D:/try/merge_result.csv',按照所需進(jìn)行文件的位置的設(shè)置余指,這其中特別需要注意的是:python中對(duì)文件位置分隔符正斜杠’/和反斜杠’\’的使用捕犬。因?yàn)閜ython中反斜杠‘\’有轉(zhuǎn)義關(guān)鍵字符的功能。
2酵镜、文件讀取第二個(gè)參數(shù):讀取方式的設(shè)置(位置參數(shù)碉碉,必須指定):
3、文件讀取第三個(gè)參數(shù)和第四個(gè)參數(shù):對(duì)文件編碼方式的調(diào)整(命名參數(shù)淮韭,有默認(rèn)值):
encoding指定讀取文件的編碼方式
errors='ignore'則是忽略文件中出現(xiàn)的編碼不一致問(wèn)題垢粮。
對(duì)文件的常用操作:
簡(jiǎn)化操作文件方式:
(可以同時(shí)實(shí)現(xiàn)文件的打開(kāi),讀寫(xiě)靠粪,關(guān)閉操作)
with open('/Users/michael/test.txt', 'w') as f:f.write('Hello, world!')
這樣操作也可以防止在實(shí)際使用中忘記使用調(diào)用close()方法
本次總結(jié)
本次主要介紹了python對(duì)文件的常規(guī)讀寫(xiě)操作方式蜡吧,是最常用的os模塊操作之一。下期會(huì)接著介紹os模塊對(duì)系統(tǒng)目錄占键,文件斩跌,子模塊,系統(tǒng)命令等其他相關(guān)操作方式捞慌。