import os import glob import pandas as pd import codecs def convert_encoding(file_path, from_encoding, to_encoding): try: with codecs.open(file_path, 'r', encoding=from_encoding) as file: content = file.read() with codecs.open(file_path, 'w', encoding=to_encoding) as file: file.write(content) print(f"Converted {file_path} from {from_encoding} to {to_encoding}") except IOError as e: print(f"Error converting {file_path}: {e}") def batch_convert_encoding(directory, from_encoding, to_encoding): for root, dirs, files in os.walk(directory): for file in files: file_path = os.path.join(root, file) convert_encoding(file_path, from_encoding, to_encoding) # 使用示例 source_folder = input("请输入源文件夹路径:") # target_folder = source_folder batch_convert_encoding(source_folder, 'gb2312', 'utf-8') os.chdir(source_folder) extension = 'csv' # 读取csv文件列表,并过滤掉不想要的文件 all_filenames = [] for f in glob.glob('*.{}'.format(extension)): if f.endswith('FFDEV.csv'): continue all_filenames.append(f) # 在列表中合并所有文件 combined_csv = pd.concat([pd.read_csv(f) for f in all_filenames]) # 导出 csv # print(combined_csv) combined_csv.to_csv( "问题汇总.csv", index=False, encoding='utf-8') print(combined_csv)
时间: 2024-04-12 21:33:27 浏览: 163
glob_carbon_util:与全球碳项目合作时的各种实用程序。 可能是一次性的小程序,因此将它们全部收集到一个存储库中以更干净
你的代码看起来已经可以实现批量将编码从 GB2312 转换为 UTF-8,并且将合并后的 CSV 文件以 UTF-8 编码保存了。你可以按照以下步骤来使用这段代码:
1. 运行代码后,会提示你输入源文件夹的路径。你可以输入源文件夹的路径,例如:`path/to/source/folder`。
2. 程序会将源文件夹中的所有文件的编码从 GB2312 转换为 UTF-8,并保存到源文件夹中。
3. 程序会读取 CSV 文件列表,并过滤掉名为 `FFDEV.csv` 的文件。
4. 将过滤后的文件合并为一个 DataFrame。
5. 最后,将合并后的 DataFrame 导出为一个名为 `问题汇总.csv` 的 CSV 文件。
请确保输入的源文件夹路径正确,并且源文件夹中包含需要转换编码的文件。同时,也需要确保没有其他同名的文件会被覆盖。
阅读全文