用python抓取其他路径的txt合并到一个excel
时间: 2023-05-23 11:04:10 浏览: 52
文件怎么实现?
可以使用Python中的pandas库来实现将多个txt文件合并到一个excel文件中。首先,需要用pandas的read_csv()函数读取每个txt文件,然后使用pandas的concat()函数将它们连接起来。最后,使用pandas将连接的数据写入到一个excel文件中。以下是示例代码:
```python
import pandas as pd
import os
# 设置路径和文件名
directory = "path/to/files"
output_file = "merged_file.xlsx"
# 获取目录下的所有txt文件
files = [file for file in os.listdir(directory) if file.endswith(".txt")]
# 读取每个txt文件到pandas
dfs = [pd.read_csv(os.path.join(directory, file), sep='\t', header=None) for file in files]
# 将所有读取的数据连接起来
merged_df = pd.concat(dfs)
# 将连接的数据写入excel文件
merged_df.to_excel(output_file, index=False, header=None)
```
这将抓取路径下所有的txt文件,将它们合并到一个pandas DataFrame对象中,然后将该DataFrame对象写入到一个excel文件中。你可以在代码中指定要抓取的路径和文件名。
相关问题
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文件内容格式不同,需要根据实际情况对代码进行修改。