[英]Merge all the csv file in one folder and add a new column to pandas dataframe with partial file name in Python
[英]Python script to search for a file using partial name in a set of folders and sort them into a new folder structure
我第一次尝试自动化 python 脚本。 我有一组特定文件夹结构中的文件
source1
-date1
-date1_time1_xyz.csv
-date1_time3_abc.doc
-date2
-date2_time1_xyz.csv
-date2_time3_abc.doc
source2
-date1
-date1_time1_dfg.csv
-date1_time2_abc.doc
-date2
-date2_time1_xyz.csv
-date2_time3_abc.doc
但是我想要一个文件夹结构,它将所有日期的所有.csv 组合到一个名为 meta 的文件夹中,并将所有日期的 .doc 组合到另一个名为 docs 的文件夹中,如下所示:
date1
-meta
-date1_time1_xyz.csv
-date1_time1_dfg.csv
-docs
-date2_time3_abc.doc
-date2_time2_abc.doc
我编写了一个脚本来将这些视频分类到我需要的文件夹结构中。 所以我想我会分享我的解决方案(也许它可能会帮助某人)。 欢迎大家提出改进意见!
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Wed Jan 20 09:57:51 2021
Example usage:
#specify source folder
ogpath = '/home/data
(data should contain folders source1, source2, so on..)
#specify destination folder
new_path = '/home/tester/new'
#specify which recording to aggregate
filename = "date1_time1"
"""
import os, shutil
from pathlib import Path
import glob
#specify source folder
ogpath = '/home/data'
#specify destination folder
new_path = '/home/tester/new'
#specify which files to aggregate
filename = "date1_time1"
#create new folder for sorted data
dst_dirpath = os.path.join(new_path,'sorted_data')
print(dst_dirpath)
if not os.path.isdir(dst_dirpath):
os.mkdir(dst_dirpath)
#create new path for each date
record_path = os.path.join(dst_dirpath, filename[:4]) #take only date1 to create the folder
if not os.path.isdir(record_path):
os.mkdir(record_path)
#create sub path for meta
meta_path = os.path.join(record_path,'meta')
if not os.path.isdir(meta_path):
os.mkdir(meta_path)
#create sub path for docs
docs_path = os.path.join(record_path,'docs')
if not os.path.isdir(docs_path):
os.mkdir(docs_path)
#search for files with same name in all folders
for file in glob.glob(ogpath+'/**/'+filename[:4]+'/*'+filename+'*.doc'):
shutil.copy(file, docs_path)
for file in glob.glob(ogpath+'/**/**/*'+filename+'*.csv'):
shutil.copy(file, meta_path)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.