как получить имя неизвестного файла .XLS в переменную в Python 3.7 - PullRequest
0 голосов
/ 31 октября 2018

Я использую 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

Так, например, для «бла» вывод:

"['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 ]

0 голосов
/ 31 октября 2018

Этот код находит файл xls в указанном вами пути, считывает файл xls и удаляет файл. Если в вашем каталоге содержится более 1 файла 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)
0 голосов
/ 31 октября 2018

Проверьте это,

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

matching будет иметь весь список файлов Excel.

Поскольку у вас есть только один файл Excel, вы можете сохранить в переменной, как file_name = matching[0]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...