繁体   English   中英

如何从一个目录中读取多个文本文件,将它们全部转换为excel文件

[英]How to read multiple text files from a directory, convert them all to excel files

我的本地目录中有 10 个制表符分隔的文本文件。 当我将文本文件复制并粘贴到 Excel 工作表中时,它变成了一个包含 100 列的文件。 现在,我想读取所有文本文件并将它们转换为相应的 excel 文件。

如果只有一个文件,我会这样做:

import pandas as pd
df = pd.read_csv("H:\\Yugeen\\text1.txt", sep='\t')
df.to_excel('H:\\Yugeen\\output1.xlsx', 'Sheet1', index = False)

有什么方法可以实现我正在寻找的解决方案吗?

我使用此函数列出目录中的所有文件及其文件路径:

import os

def list_files_in_directory(path):
    '''docstring for list_files_in_directory'''
    x = []
    for root, dirs, files in os.walk('.'+path):
        for file in files:
            x.append(root+'/'+file)
    return x

仅选择文本文件:

files = list_files_in_directory('.')
filtered_files = [i for i in files if '.txt' in i]

就像 Sophia 演示的那样,您可以使用 Pandas 创建一个数据框。 我假设您也想合并这些文件。

import pandas as pd

dfs = []
for file in filtered_files:
    df = pd.read_csv(file,sep='\t')
    dfs.append(df)

df_master = pd.concat(dfs,axis=1)
filename = 'master_dataframe.csv'
df_master.to_csv(filename,index=False)

然后可以在 Excel 中打开保存的文件。

您是在谈论如何获取文件名吗? 您可以使用glob库。

import glob
import pandas as pd

file_paths = glob.glob('your-directory\\*.txt')
for file in file_path:
    df = pd.read_csv(file,sep='\t')
    df.to_excel('output-directory\\filename.xlsx',index=False)

这回答了你的问题了吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM