如何在Python 3.7中将未知.XLS文件的名称转换为变量

我正在使用Python 3.7 .

每次下载到特定的下载文件夹位置时,我都必须下载一个具有唯一文件名的excel文件(.xls) .

然后使用Python和Pandas,我必须打开excel文件并将其读取/转换为数据帧 .

我想自动化这个过程,但是我告诉Python将XLS文件的全名作为变量,然后pandas将使用它:

# add dependencies and set location for downloads folder

import os
import glob
import pandas as pd

download_dir = '/Users/Aaron/Downloads/'

# change working directory to download directory
os.chdir(download_dir)

# get filename of excel file to read into pandas
excel_files = glob.glob('*.xls')
blah = str(excel_files)
blah

那么例如,“blah”的输出是:

"['63676532355861.xls']"

我也试过在上面的块中使用“blah = print(excel_files)”而不是“str”方法,并将其分配给变量,但仍然无效 .

然后剩下的过程将执行以下操作:

# open excel (XLS) file with unknown filename in pandas as a dataframe
data_df = pd.read_excel('WHATEVER.xls', sheet_name=None)

然后我将其转换为数据框后,我想删除excel文件 .

到目前为止,我花了很多时间阅读fnames,io,open,os.path和其他库 .

我仍然不知道如何将未知的.XLS文件的名称变为变量,然后再删除该文件 .

任何建议将不胜感激 .

回答(2)

2 years ago

检查一下,

lst = os.listdir()
matching = [s for s in lst if '.xls' in s]

matching 将包含所有excel文件列表 .

因为你只有一个excel文件,你可以保存在像 file_name = matching[0] 这样的变量中

2 years ago

此代码在指定路径中找到xls文件,读取xls文件并删除该文件 . 如果您的目录包含多个xls文件,则会读取最后一个 . 如果找到多个xls文件,您可以执行任何操作 .

import os

for filename in os.listdir(os.getcwd()):
   if filename.endswith(".xls"):
    print(filename)
    #do your operation
    data_df = pd.read_excel(filename, sheet_name=None)
    os.remove(filename)