Python 如何从一个目录中读取多个文本文件,将它们全部转换为excel文件
我的本地目录中有10个标签删除的文本文件。当我将一个文本文件复制并粘贴到excel工作表中时,它将成为一个包含100列的文件。现在,我想读取所有文本文件并将其转换为相应的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
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循环。我不确定文件处理,这就是为什么我在这里问这个问题。