Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 17, 2022 13:26:39

msklive
Зарегистрирован: 2022-06-17
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Маска названия файлов для загрузки panda read_csv

Коллеги, добрый день, не смог нагуглить свою проблему, поэтому обращаюсь к вам.
Суть проблемы:
Ко мне регулярно приходят с десяток 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=';')
Спасибо.

Офлайн

#2 Июнь 17, 2022 14:35:17

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9873
Репутация: +  853  -
Профиль   Отправить e-mail  

Маска названия файлов для загрузки panda read_csv

msklive
Ко мне регулярно приходят с десяток csv файлов с названиями типа П1(436534).csv, П2(422).csv, П3(81873).csv и т.д.
Куда приходят? Обычно имена файлов берутся из списка имён. И потом каждое такое имя присваивается переменной и переменная передаётся в функцию, которая принимает имя файла.

  
ifname = 'П1(436534).csv'
data = pd.read_csv(ifname, sep=';')

msklive
Можно ли как то добавить маску к названию файла
Да можно много чего делать, но не нужно этого делать.

В чём проблема брать имена напрямую?



Отредактировано py.user.next (Июнь 17, 2022 14:36:55)

Офлайн

#3 Июнь 17, 2022 14:47:21

msklive
Зарегистрирован: 2022-06-17
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Маска названия файлов для загрузки panda read_csv

py.user.next
Онлайн

На данный момент я их сам закачиваю в директорию в JupiterHub, не знаю как это правильно называется, делаю Upload и они появляются у меня в папке. Предполагается что следующим этапом файлы будут размещаться на каком-нибудь FTP к примеру и по этому событию они будут закачиваться в датафрэймы.
Если я Вас правильно понял, Вы предлагаете в коде каждый раз прописывать заново новое название файла, это тоже самое что вручную их переименовать, то ли я Вас не понял то ли Вы меня.

Офлайн

#4 Июнь 17, 2022 15:08:01

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

Маска названия файлов для загрузки panda read_csv

Вас правильно понял
https://www.geeksforgeeks.org/python-os-listdir-method/



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Отредактировано AD0DE412 (Июнь 17, 2022 15:08:25)

Офлайн

#5 Июнь 17, 2022 16:26:50

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9873
Репутация: +  853  -
Профиль   Отправить e-mail  

Маска названия файлов для загрузки panda read_csv

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=';')
        ...



Отредактировано py.user.next (Июнь 17, 2022 16:28:33)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version