Python将一个路径下的多级文件夹中的txt文件汇总为一个txt文科
时间: 2024-05-14 18:13:22 浏览: 12
可以使用Python中的os和glob模块来实现。首先,我们需要获取所有txt文件的路径。代码如下:
```python
import os
import glob
path = '/path/to/folder' # 替换为具体的文件夹路径
files = glob.glob(os.path.join(path, '**/*.txt'), recursive=True)
```
这段代码会获取到指定文件夹下所有文件夹中的所有txt文件的路径,存放在名为`files`的列表中。
接下来,我们可以循环读取每个txt文件中的内容,并将它们依次写入到一个新的txt文件中。代码如下:
```python
output_file = 'output.txt' # 将所有txt文件汇总后的文件名
with open(output_file, 'w') as outfile:
for file in files:
with open(file, 'r') as infile:
outfile.write(infile.read())
```
这段代码会将所有txt文件汇总为一个名为`output.txt`的文件。注意,如果在指定文件夹下存在子文件夹中有相同文件名的txt文件,它们会被追加到同一个输出文件中。
希望这能够帮到你。
相关问题
Python抓取路径中多级文件夹内的txt文件合并成一个excel
以下是一个Python脚本示例,它可以抓取指定路径中多级文件夹内的所有txt文件并将它们合并为一个excel文件。
```python
import os
import glob
import pandas as pd
# 指定txt文件所在的路径
path = r'C:\your\path\to\directory'
# 获取所有txt文件的路径
txt_files = glob.glob(os.path.join(path, '**/*.txt'), recursive=True)
# 如果txt文件不存在,则退出程序
if not txt_files:
print('No txt files found in the specified directory')
exit()
# 通过循环读取每个txt文件并将它们合并到一个DataFrame中
data = pd.DataFrame()
for file in txt_files:
# 读取txt文件数据并转换为DataFrame
df = pd.read_csv(file, delimiter='\t')
# 添加文件名列
filename = os.path.splitext(os.path.basename(file))[0]
df['Filename'] = filename
# 将新的DataFrame合并到主DataFrame中
data = pd.concat([data, df])
# 将合并后的数据保存为excel文件
data.to_excel(os.path.join(path, 'merged_data.xlsx'), index=False)
```
此代码使用`glob`模块来查找指定路径内的所有txt文件。然后,它循环遍历这些文件并使用`pd.read_csv()`函数读取它们的内容。一个新的DataFrame被创建,并各个txt文件中的数据被添加到其中。最后,数据被保存为一个新的excel文件。请注意,代码中的分隔符为Tab。根据实际情况,您可能需要将其更改为适当的分隔符。
Python抓取一个路径中多级文件内的txt文件合并成一个excel
以下是一个示例代码,可以实现将指定路径中多级文件夹内的txt文件合并成一个excel文件:
```python
import os
import pandas as pd
# 设置要合并的文件夹路径和输出excel文件名
folder_path = "your_folder_path"
output_file = "output_file.xlsx"
# 遍历文件夹,获取所有txt文件路径
file_paths = []
for root, dirs, files in os.walk(folder_path):
for file in files:
if file.endswith(".txt"):
file_paths.append(os.path.join(root, file))
# 读取所有txt文件,合并为一个DataFrame
data = []
for file_path in file_paths:
with open(file_path) as f:
lines = f.readlines()
for line in lines:
data.append(line.strip().split("\t"))
df = pd.DataFrame(data)
# 将合并后的DataFrame保存为excel文件
df.to_excel(output_file, index=False, header=None)
```
需要注意的是,该代码假设所有txt文件的内容格式相同,且以制表符分隔。如果txt文件内容格式不同,需要根据实际情况对代码进行修改。