在python脚本中从一个csv工作表移动到下一个csv工作表

2024-10-01 17:31:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在使用excel创建.csv工作表,我想用python解析这些工作表。每个工作表都以一家商店命名(例如工作表1:“Waitrose”,工作表2:“Tesco”,工作表3:“Asda”),并包含产品列表(第1列)及其相关价格(第2列)。我已经编写了一个python脚本,可以访问工作表并将内容转换为字典(见下文),但我很难找到让程序访问工作簿中下一个工作表的方法。我希望最终得到的词典和工作表一样多。csv模块似乎帮不了什么忙,我也找不到一个与第三方python3兼容的模块来处理excel。我在想也许是applescript,但不确定如何将其嵌入到python脚本中

waitrose = {'apples' : 25, 'oranges' : 45 etc}

有什么建议吗?在

保罗。在


Tags: 模块csv脚本内容列表字典产品价格
2条回答

我没用过,但你看过xlrd模块了吗?它似乎可以处理包括工作表在内的常规Excel文件的读取。在

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

每个工作表必须保存为单独的CSV。由于您已经能够解析单个CSV,所以我将集中精力处理单个文件。一旦每个Excel工作表都有了CSV,就可以使用glob模块迭代目录中的每个.csv文件。使用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...

相关问题 更多 >

    热门问题