переход от одного листа CSV к другому в скрипте Python - PullRequest
0 голосов
/ 27 мая 2011

Я использую Excel для создания рабочих таблиц .csv, которые я хотел бы проанализировать с помощью python.Каждый рабочий лист назван в честь магазина (например, рабочий лист 1: «Waitrose», рабочий лист 2: «Tesco», рабочий лист 3: «Asda») и содержит список продуктов (столбец 1) и соответствующие цены (столбец 2).Я написал скрипт на python, который может получить доступ к рабочему листу и превратить его в словарь (см. Ниже), но я изо всех сил пытаюсь найти способ получить доступ к следующему рабочему листу в рабочей книге.Я хочу получить столько же словарей, сколько рабочих листов.Модуль CSV, кажется, не очень помогает, и я не могу найти текущий сторонний Python 3-совместимый модуль, который работает с Excel.Я подумал, может быть яблочный скрипт, но не уверен, как бы я встроил это в скрипт на питоне

waitrose = {'яблок': 25, «апельсинов»: 45 и т.д.

есть предложения?

Пол.

Ответы [ 2 ]

3 голосов
/ 27 мая 2011

Каждый лист должен быть сохранен как отдельный файл CSV. Поскольку вы уже можете анализировать один CSV, я сконцентрируюсь на обработке отдельных файлов. Получив CSV для каждого листа Excel, вы можете перебирать каждый файл .csv в каталоге с помощью модуля glob. С glob.glob() вы можете использовать подстановочные знаки в пути, поэтому, если вы хотите, чтобы в каталоге были только файлы .csv, используйте подстановочный знак *.csv.

import glob
import os

for csvFilename in glob.glob("C:\\path-to-folder-with-csv\\*.csv"):
    # csvFilename now contains the full path to the next CSV in the folder

    # This will give us the basename of the file without the extension
    worksheet = os.path.basename(os.path.splitext(csvFilename)[0])

    if worksheet.lower() == "waitrose":
        # Parse Waitrose CSV...

    elif worksheet.lower() == "tesco":
        # Parse Tesco CSV...

    elif worksheet.lower() == "asda":
        # Parse Asda CSV...
1 голос
/ 27 мая 2011

Я не использовал его, но вы смотрели на модуль xlrd? Похоже, что он обрабатывает чтение обычных файлов Excel, включая таблицы.

https://secure.simplistix.co.uk/svn/xlrd/trunk/xlrd/doc/xlrd.html

...