Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从一个目录中读取多个文本文件,将它们全部转换为excel文件_Python_Python 3.x_Pandas_Jupyter Notebook_File Handling - Fatal编程技术网

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

Python 如何从一个目录中读取多个文本文件,将它们全部转换为excel文件,python,python-3.x,pandas,jupyter-notebook,file-handling,Python,Python 3.x,Pandas,Jupyter Notebook,File Handling,我的本地目录中有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

我的本地目录中有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)

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

您是在谈论如何获取文件名吗?您可以使用
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)

这是否回答了您的问题?

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

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中打开。

当然有。您应该研究一个名为
for
循环的编程构造。@aryamcarthy我知道for循环。我不确定文件处理,这就是为什么我在这里问这个问题。