Python读取路径下文件夹中多级文件夹内的txt文件合并成一个txt文件,在转换成excel
时间: 2023-05-25 10:06:35 浏览: 91
以下是示例代码:
```python
import os
import pandas as pd
# 遍历文件夹,获取所有txt文件路径
def get_txt_files(folder_path):
files = []
for root, dirs, filenames in os.walk(folder_path):
for filename in filenames:
if filename.endswith(".txt"):
files.append(os.path.abspath(os.path.join(root, filename)))
return files
# 将多个txt文件内容合并为一个字符串
def combine_txt_files(txt_files):
content = ""
for txt_file in txt_files:
with open(txt_file, "r") as f:
content += f.read()
return content
# 将合并后的内容写入到新文件中
def write_combined_content_to_file(content, file_path):
with open(file_path, "w") as f:
f.write(content)
# 将txt文件转换为excel文件
def txt_to_excel(txt_file, excel_file):
df = pd.read_csv(txt_file, delimiter="\t", header=None) # 这里假设txt文件以tab分隔符分隔,没有表头
df.to_excel(excel_file, index=False, header=None) # 写入excel文件,不包含行索引和表头
if __name__ == "__main__":
folder_path = "/path/to/folder" # 文件夹路径
txt_files = get_txt_files(folder_path) # 获取txt文件列表
combined_content = combine_txt_files(txt_files) # 合并所有txt文件内容
combined_file_path = "/path/to/combined/file.txt" # 合并后的文件路径
write_combined_content_to_file(combined_content, combined_file_path) # 将合并后的内容写入到新文件
excel_file_path = "/path/to/converted/file.xlsx" # 转换后的excel文件路径
txt_to_excel(combined_file_path, excel_file_path) # 将txt文件转换为excel文件
```
说明:
1. `get_txt_files`函数用于遍历文件夹,获取所有后缀名为`.txt`的文件路径,使用了`os.walk()`方法;
2. `combine_txt_files`函数将多个txt文件内容合并为一个字符串;
3. `write_combined_content_to_file`函数将合并后的内容写入到新文件中;
4. `txt_to_excel`函数将单个txt文件转换为excel文件,使用了`pandas`库,假设txt文件以tab分隔符分隔,并且没有表头;
5. 在`main`函数中,首先获取所有txt文件路径,然后合并所有txt文件内容,并写入到新文件中,最后将新文件转换为excel文件。
阅读全文