簡體   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