![](/img/trans.png)
[英]Python script to read multiple excel files in one directory and convert them to .csv files in another directory
[英]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.