1、遍历文件夹下文件,选择不同后缀的文件写入csv,同时提取出文件名内信息
# -*- coding: utf-8 -*-
import os
import pandas as pd #和csv有关的最好的库就是panda了
import sys
def get_filename(file_dir):
L=[]
for root, dirs, files in os.walk(file_dir):
# print(root) #当前目录路径
# print(dirs) #当前路径下所有子目录
# print(files) #当前路径下所有非目录子文件
for file in files:
if os.path.splitext(file)[1] == ‘.png‘:
L.append(os.path.join(root, file))
return L
def main():
# file_path = ‘/media/aha/‘
file_path = sys.argv[1]
# 这里在当前路径下生成一个filename.csv文件用来记录所有文件名
creat_csvfile_path = r"路径下生成一个filename.csv文件用来记录所有文件名"
FileName = get_filename(file_path)
content1 = []
for filename in FileName:
content = [[filename]]
content0 = filename.split("_", 12)[4]
content1.append(content0)
list_name = [‘文件名‘]
tab_data = pd.DataFrame(data=content, columns=list_name)
#这一步是为了不覆盖表头
if not os.path.exists(creat_csvfile_path):
tab_data.to_csv(creat_csvfile_path, mode=‘a+‘, encoding=‘utf-8-sig‘, index=False)
else:
tab_data.to_csv(creat_csvfile_path, mode=‘a+‘, encoding=‘utf-8-sig‘, index=False, header=False)
content2 = set(content1)
for con in content2:
print("the %s has found %d" %(con,content1.count(con)))
if __name__ == ‘__main__‘:
main()
-
get_filename
函数作用是为了遍历文件夹-
os.path.splitext(file)[1] == ‘.png‘
将文件的文件名和后缀分开,并挑选相应的1文件 -
L.append(os.path.join(root, file))
将目录加上文件名写入列表
-
-
file_path = sys.argv[1]
从命令行得到相应文件路径 -
for filename in FileName:
循环列表内容执行写入和其他操作-
content0 = filename.split("_", 12)[4]
以"_"形式拆分文件名,提取相应信息 -
tab_data.to_csv
写入csv文件 -
#列表去重 content2 = set(content1) for con in content2: print("the %s has found %d" %(con,content1.count(con)))
遍历列表,得到每类重复数量信息
-
参考下文
原文链接:https://blog.csdn.net/weixin_41135473/article/details/102635689