今天的开发日志完全是为了展示学好 Python 对开发效率提高多大。
因为 Resource 下面的文件结构太复杂,需要生成大量空的文件夹,所以写了两行 bat 来做这件事:
1 2 3 4 5 @echo off FOR /L %%G IN (0 ,1 ,100 ) DO ( mkdir %%G ) echo 目录创建成功。
之后我这里的音频文件文件名结构是数字+空格+文件名,需要复制到对应数字的文件夹里。本来打算手动一个一个复制,复制2个以后就放弃了,然后打算用 bat 再写一段,结果不知道怎么用 bat 写 …… 所以又用 Python,写了下面的代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 import osimport shutilsource_dir = '目录A' target_dir = '目录B' for file in os.listdir(source_dir): if file.endswith('.mp3' ): number = file.split(' ' )[0 ] if number.isdigit(): source_file = os.path.join(source_dir, file) target_subdir = os.path.join(target_dir, number) if os.path.exists(target_subdir) and os.path.isdir(target_subdir): target_file = os.path.join(target_subdir, file) shutil.copy2(source_file, target_file) print(f"已将 '{file} ' 复制到 '{target_subdir} '" ) else : print(f"目标目录 '{target_subdir} ' 不存在。跳过 '{file} '。" ) else : print(f"文件 '{file} ' 开头没有数字。跳过。" ) else : print(f"文件 '{file} ' 不是MP3格式。跳过。" ) print("完成!" )
写完以后觉得用两个程序实现这件事太蠢了,于是用 Python 写了一个完整流程的代码,之后可以直接用这个来整理素材了:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 import osimport shutilsource_dir = '目录A' for i in range(101 ): os.makedirs(os.path.join(target_dir, str(i)), exist_ok=True ) print("目录创建成功。" ) target_dir = '目录B' for file in os.listdir(source_dir): if file.endswith('.mp3' ): number = file.split(' ' )[0 ] if number.isdigit(): source_file = os.path.join(source_dir, file) target_subdir = os.path.join(target_dir, number) if os.path.exists(target_subdir) and os.path.isdir(target_subdir): target_file = os.path.join(target_subdir, file) shutil.copy2(source_file, target_file) print(f"已将 '{file} ' 复制到 '{target_subdir} '" ) else : print(f"目标目录 '{target_subdir} ' 不存在。跳过 '{file} '。" ) else : print(f"文件 '{file} ' 开头没有数字。跳过。" ) else : print(f"文件 '{file} ' 不是MP3格式。跳过。" ) print("复制完成!" )
在写完以上的内容后,突然觉得还是自动化的流程更有效率,于是决定重新整理开发文档的格式,之后直接用程序配表。
但是我之前的文档是 Word 格式的,我要转换成 Excel 的。于是根据我的需求,写了下面的程序,可以根据自己的需求调整文件结构:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 from docx import Documentimport pandas as pdfile_path = 'word路径' doc = Document(file_path) def process_table (table) : data = [] for row in table.rows: row_data = [] for cell in row.cells: row_data.append(cell.text) data.append(row_data) return pd.DataFrame(data) tables = [process_table(table) for table in doc.tables] def set_columns_clean_split_table (table) : table.columns = ['文件名' , '内容' , '选项' ] table['选项文本' ] = table['选项' ].str.extract(r'^(.*?)[,,]' ) table['数字' ] = table['选项' ].str.extract(r'([0-9]+)$' ) table.drop(columns=['选项' ], inplace=True ) return table processed_tables = [set_columns_clean_split_table(table) for table in tables] final_merged_table = pd.concat(processed_tables, ignore_index=True ) final_excel_path = 'excel路径' final_merged_table.to_excel(final_excel_path, index=False )
Python 真的是强大的生产力工具。