做家教网站怎样建小型网站
2026/5/13 23:17:31 网站建设 项目流程
做家教网站,怎样建小型网站,网站建设应该考虑哪些方面,wordpress背景音乐插件本文将实现批量读取指定文件夹下的所有 TXT 文件#xff0c;提取每个文件中指定列的所有值#xff0c;并将结果写入 Excel#xff08;支持按文件分 Sheet、或合并到单个 Sheet#xff09;。核心使用pandas#xff08;高效处理文本 / 表格数据#xff09;和openpyxl#…本文将实现批量读取指定文件夹下的所有 TXT 文件提取每个文件中指定列的所有值并将结果写入 Excel支持按文件分 Sheet、或合并到单个 Sheet。核心使用pandas高效处理文本 / 表格数据和openpyxlExcel 写入引擎兼顾简洁性和通用性。一、前置准备1. 安装依赖库执行以下命令安装所需库bashpip install pandas openpyxlpandas快速读取 TXT 文件、提取列数据openpyxl支持写入.xlsx 格式 Excel 文件pandas 默认依赖。2. 明确 TXT 文件格式需先确认 TXT 文件的分隔符常见类型空格分隔如1 张三 20制表符分隔\t如1\t张三\t20逗号分隔如1,张三,20其他分隔符如|、;。二、核心代码实现场景 1所有 TXT 结构一致提取指定列合并到 Excel 单个 Sheet适用于所有 TXT 文件的列数、列顺序完全相同提取同一列如第 2 列并汇总到 Excel 的一个 Sheet 中标注数据来源文件。pythonimport os import pandas as pd def txt_col_to_excel( txt_folder, # TXT文件所在文件夹路径 excel_path, # 输出Excel文件路径如result.xlsx target_col_index, # 要提取的列索引从0开始如第2列填1 sep\s, # TXT文件分隔符默认匹配任意空格含多个空格/制表符 encodingutf-8 # TXT文件编码常见gbk/utf-8 ): 批量读取TXT文件提取指定列写入Excel单个Sheet # 初始化汇总数据列表 all_data [] # 遍历文件夹下所有TXT文件 for filename in os.listdir(txt_folder): # 仅处理.txt后缀文件 if not filename.endswith(.txt): continue # 拼接完整文件路径 txt_path os.path.join(txt_folder, filename) print(f正在处理文件{filename}) try: # 1. 读取TXT文件为DataFrame # sep, 对应逗号分隔sep\t 对应制表符sep| 对应竖线分隔 df pd.read_csv( txt_path, sepsep, encodingencoding, headerNone, # TXT无表头时设为None有表头则设为0 on_bad_linesskip # 跳过格式错误的行 ) # 2. 提取指定列添加来源文件列便于溯源 target_col df.iloc[:, target_col_index] # iloc[:,n] 提取第n列索引从0开始 temp_df pd.DataFrame({ 来源文件: filename, 目标列数据: target_col }) # 3. 追加到汇总列表 all_data.append(temp_df) except Exception as e: print(f处理文件 {filename} 失败{e}) continue # 4. 合并所有数据并写入Excel if all_data: final_df pd.concat(all_data, ignore_indexTrue) # indexFalse 不写入行索引engineopenpyxl 支持.xlsx格式 final_df.to_excel(excel_path, sheet_name汇总数据, indexFalse, engineopenpyxl) print(f所有数据已写入Excel{excel_path}) else: print(未找到有效TXT文件或提取数据为空) # 示例调用 if __name__ __main__: # 配置参数根据实际情况修改 TXT_FOLDER rE:\test_txt # TXT文件所在文件夹绝对路径 EXCEL_PATH 提取结果.xlsx # 输出Excel路径 TARGET_COL_INDEX 1 # 提取第2列索引从0开始 SEP \s # TXT分隔符如逗号分隔则改为, ENCODING utf-8 # 若TXT乱码尝试改为gbk # 执行函数 txt_col_to_excel(TXT_FOLDER, EXCEL_PATH, TARGET_COL_INDEX, SEP, ENCODING)场景 2按 TXT 文件分 Sheet 写入 Excel若希望每个 TXT 文件的指定列单独存入 Excel 的一个 SheetSheet 名 TXT 文件名修改核心逻辑如下pythonimport os import pandas as pd def txt_col_to_excel_by_sheet( txt_folder, excel_path, target_col_index, sep\s, encodingutf-8 ): # 创建Excel写入器 with pd.ExcelWriter(excel_path, engineopenpyxl) as writer: for filename in os.listdir(txt_folder): if not filename.endswith(.txt): continue txt_path os.path.join(txt_folder, filename) print(f正在处理文件{filename}) try: df pd.read_csv( txt_path, sepsep, encodingencoding, headerNone, on_bad_linesskip ) # 提取指定列重命名列名 target_df df.iloc[:, [target_col_index]] # 保留列结构 target_df.columns [目标列数据] # Sheet名去掉.txt后缀 sheet_name filename.replace(.txt, ) # 写入对应Sheet target_df.to_excel(writer, sheet_namesheet_name, indexFalse) except Exception as e: print(f处理文件 {filename} 失败{e}) continue print(f所有文件已分Sheet写入Excel{excel_path}) # 示例调用 if __name__ __main__: TXT_FOLDER rE:\test_txt EXCEL_PATH 按文件分Sheet结果.xlsx TARGET_COL_INDEX 1 SEP \s ENCODING utf-8 txt_col_to_excel_by_sheet(TXT_FOLDER, EXCEL_PATH, TARGET_COL_INDEX, SEP, ENCODING)三、关键参数说明参数说明txt_folderTXT 文件所在文件夹路径建议用绝对路径如rE:\data\txt避免路径错误target_col_index目标列索引从 0 开始例如第 1 列填 0、第 3 列填 2sepTXT 分隔符- 空格分隔sep\s匹配 1 个或多个空格- 制表符sep\t- 逗号sep,- 竖线sepencodingTXT 文件编码Windows 默认 ANSI 对应gbkUTF-8 文件填utf-8header若 TXT 文件有表头如第一行是 序号姓名年龄设为header0否则None四、常见问题解决1. TXT 读取乱码原因编码不匹配如文件是 gbk 编码代码用 utf-8 读取解决将encoding改为gbk或用chardet库检测文件编码pythonimport chardet with open(test.txt, rb) as f: result chardet.detect(f.read()) print(文件编码, result[encoding]) # 输出如gbk/utf-82. 列索引越界报错原因指定的target_col_index超过 TXT 文件的列数解决先打印 TXT 文件的列数确认索引pythondf pd.read_csv(test.txt, sep\s, headerNone) print(TXT文件列数, df.shape[1]) # 输出列数索引范围0~列数-13. 部分行跳过on_bad_linesskip原因TXT 中部分行格式错误如列数不一致解决若需保留所有行可去掉该参数手动排查格式错误行。五、扩展优化支持子文件夹遍历若 TXT 文件分布在子文件夹中用os.walk替换os.listdirpythonfor root, dirs, files in os.walk(txt_folder): for filename in files: if filename.endswith(.txt): txt_path os.path.join(root, filename) # 后续处理逻辑不变数据去重 / 清洗提取列后可添加去重逻辑pythontarget_df target_df.drop_duplicates() # 去重 target_df target_df.dropna() # 删除空值行追加写入 Excel若需向已有 Excel 追加数据可先读取原有数据再合并后写入。该方案兼顾通用性和易用性适用于大多数结构化 TXT 文件的列提取场景可根据实际需求调整分隔符、编码、列索引等参数。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询