Найти - Пользователи
Полная версия: Маска названия файлов для загрузки panda read_csv
Начало » Python для новичков » Маска названия файлов для загрузки panda read_csv
1
msklive
Коллеги, добрый день, не смог нагуглить свою проблему, поэтому обращаюсь к вам.
Суть проблемы:
Ко мне регулярно приходят с десяток 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
msklive
Ко мне регулярно приходят с десяток csv файлов с названиями типа П1(436534).csv, П2(422).csv, П3(81873).csv и т.д.
Куда приходят? Обычно имена файлов берутся из списка имён. И потом каждое такое имя присваивается переменной и переменная передаётся в функцию, которая принимает имя файла.

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

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

В чём проблема брать имена напрямую?
msklive
py.user.next
Онлайн

На данный момент я их сам закачиваю в директорию в JupiterHub, не знаю как это правильно называется, делаю Upload и они появляются у меня в папке. Предполагается что следующим этапом файлы будут размещаться на каком-нибудь FTP к примеру и по этому событию они будут закачиваться в датафрэймы.
Если я Вас правильно понял, Вы предлагаете в коде каждый раз прописывать заново новое название файла, это тоже самое что вручную их переименовать, то ли я Вас не понял то ли Вы меня.
AD0DE412
Вас правильно понял
https://www.geeksforgeeks.org/python-os-listdir-method/
py.user.next
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=';')
        ...
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB