msklive
Июнь 17, 2022 13:26:39
Коллеги, добрый день, не смог нагуглить свою проблему, поэтому обращаюсь к вам.
Суть проблемы:
Ко мне регулярно приходят с десяток csv файлов с названиями типа П1(436534).csv, П2(422).csv, П3(81873).csv и т.д.
Мне их нужно загружать в датафреймы для своих дальнейших дел с помощью например:
data1 = pd.read_csv ('П1.csv', sep=';').
Проблема в том что цифры в скобках в названиях файлов каждый раз разные и мне приходится вручную переименовывать эти файлы сокращая их до П1, П2, П3 перед загрузкой.
Вопрос:
Можно ли как то добавить маску к названию файла чтобы считывалось только П1, П2, П3 в названии файла, а остальное, скобки и цифры, игнорировались? Что то типа data1 = pd.read_csv ('П1*.csv', sep=';')
Спасибо.
py.user.next
Июнь 17, 2022 14:35:17
msklive
Ко мне регулярно приходят с десяток csv файлов с названиями типа П1(436534).csv, П2(422).csv, П3(81873).csv и т.д.
Куда приходят? Обычно имена файлов берутся из списка имён. И потом каждое такое имя присваивается переменной и переменная передаётся в функцию, которая принимает имя файла.
ifname = 'П1(436534).csv'
data = pd.read_csv(ifname, sep=';')
msklive
Можно ли как то добавить маску к названию файла
Да можно много чего делать, но не нужно этого делать.
В чём проблема брать имена напрямую?
msklive
Июнь 17, 2022 14:47:21
py.user.next
Онлайн
На данный момент я их сам закачиваю в директорию в JupiterHub, не знаю как это правильно называется, делаю Upload и они появляются у меня в папке. Предполагается что следующим этапом файлы будут размещаться на каком-нибудь FTP к примеру и по этому событию они будут закачиваться в датафрэймы.
Если я Вас правильно понял, Вы предлагаете в коде каждый раз прописывать заново новое название файла, это тоже самое что вручную их переименовать, то ли я Вас не понял то ли Вы меня.
py.user.next
Июнь 17, 2022 16:26:50
msklive
На данный момент я их сам закачиваю в директорию в JupiterHub, не знаю как это правильно называется, делаю Upload и они появляются у меня в папке.
Если код
pd.read_csv('П1(436534).csv', sep=';')
работает в скрипте и читает файл, то там также сработает и os.listdir(), которая даст список файлов.
Например
import os
for fname in os.listdir():
if fname.endswith('.csv'):
print('Processing', fname)
ifname = fname
data = pd.read_csv(ifname, sep=';')
...