Python 写文件是常用的操作,这里整理一下;
1. write txt
namelist=[]
namelist.append(input.item())
with open("namelist.txt", "w",encoding="utf-8") as f:
for i in namelist:
f.write(str(i)+'\n')
2 .write csv 表格;
fileNameID =0
def write_csv(fileNameID,filename,file_md5):
# 表头
header = ["序号", "名称", "MD5"]
areas =[str(fileNameID) ,str(filename), str(file_md5)]
with open('file_md5.csv', mode='a', encoding='utf_8_sig',newline="") as file_obj:
# 1:创建writer对象
writer = csv.writer(file_obj)
# 2:写表头
if fileNameID==0:
writer.writerow(header)
writer.writerow(areas)
例:计算目录下所有文件的MD5值
#计算目录下所有文件的MD5值
# coding:utf-8
import os
import hashlib
import csv
RootDir = './Release'
fileNameID =0
def write_csv(fileNameID,filename,file_md5):
# 表头
header = ["序号", "名称", "MD5"]
# uheader = []
# for i in header:
# uheader.append(i.encode("utf-8"))
areas =[str(fileNameID) ,str(filename), str(file_md5)]
with open('file_md5.csv', mode='a', encoding='utf_8_sig',newline="") as file_obj:
# 1:创建writer对象
writer = csv.writer(file_obj)
# 2:写表头
if fileNameID==0:
writer.writerow(header)
writer.writerow(areas)
def md5_test(dir):
global fileNameID
list_item = os.listdir(dir)
for f in list_item:
path = os.path.join(dir,f)
if os.path.isdir(path):
md5_test(path)
#print(tuple_result[0],tuple_result[1])
else:
if path.endswith('.dll') or path.endswith('.exe'):
with open(path,'rb') as fp:
data = fp.read()
file_md5 = hashlib.md5(data).hexdigest()
#print(fileNameID,',',f,',',file_md5)
write_csv(fileNameID,f,file_md5)
# else:
# print(fileNameID, ',', f, ',', file_md5)
fileNameID += 1
#return path,file_md5
if __name__ == '__main__':
md5_test(RootDir)