【问题标题】:How to create folders by reading excel names in a sheet (using python)?如何通过读取工作表中的 excel 名称(使用 python)来创建文件夹?
【发布时间】:2020-04-06 14:09:50
【问题描述】:

我想读取一个 excel 文件并在其写入工作表后创建文件夹。 我想获取前 2 列,合并它们,然后创建以它们命名的文件夹。好吧,我是新来的,试着在论坛里找遍了......

这是我的代码:

arquivo = xlrd.open_workbook('C:\\Users\\xxx\\Desktop\\Engetran\\Ceriluz\\01-Projeto Executivo\\00 - Documentos\\EGTR-M-P03 - Documentos.xls')
linha = arquivo.sheet_by_index(0)

lista_valores1 = linha.col_values(0)
lista_valores2 = linha.col_values(1)
lista_valores = f"{lista_valores1} {lista_valores2}c"

os.mkdir('C:\\Users\\xxx\\Desktop\\Nova pasta (5)\\Projeto Executivo')
root_path = 'C:\\Users\\xxx\\Desktop\\Nova pasta (5)\\Projeto Executivo'
folders = [ lista_valores ]
for folder in folders:`
    os.mkdir(os.path.join(root_path,folder))`

我得到一个错误:

filenotfounderror winerror 3 the system cannot find the path specified

如果您有任何回应,我将不胜感激!

【问题讨论】:

    标签: python excel merge directory path


    【解决方案1】:

    根据 xlrd-documentation,“col_values”方法返回给定列中的单元格切片。由于您没有传入任何其他参数,它将返回您的整个列。在此之后,您尝试将这些(可能是巨大的)切片放入格式字符串中。该字符串的内容是什么?它可能包含无效字符,或者路径可能太长。

    尝试看看 os.path.join 最后返回什么,看看是否可以使用这样的名称创建目录。

    如果您再次遇到困难,请随时分享您的进一步见解以获得更多帮助。

    【讨论】:

    • 好吧,它读取所有内容,我不知道如何只选择写入的内容,只有前两列包含所有内容(现在我得到了这个):OSError:[WinError 123] 文件名,目录名称或卷标语法不正确:“C:\\Users\\xxx\\Desktop\\Nova Pasta (5)\\Projeto Executivo\['', '', '', '', 'LT 69 kV IJUI 2 - CERILUZ 3', '', 'RELAÇÃO DE DOCUMENTOS', '', 'Nº', '', 1.0, '', 2.0, '', 3.0] ['', '', '', '' , '', '', '', '', 'DESCRIÇÃO', '', 'Planta Geral do Traçado', '', 'Memorial Técnico Descritivo', '', 'Perfil Planialtimétrico']c"
    • 将“lista_valores1”视为一个列表(它实际上是一个切片)。您可以像其他列表一样对其进行索引,例如 lista_valores1[0] 将返回您的 Excel 工作表第一列的第一个单元格
    • 嗯,有点工作哈哈创建了 1 个文件夹,所有内容都写在工作表中:“ ['', '', '', '', '', '', '', '', 'DESCRIÇÃO', '', 'Planta Geral do Traçado', '', 'Memorial Técnico Descritivo', '', 'Perfil Planialtimétrico']c" 没有数字,但我需要它们.. 我需要的例子:" 1 - Planta Geral Traçado" --> 创建文件夹; “2 - Memorial Tecnico Descritivo”第二个文件夹创建者;等等……
    • 我又卡住了哈哈
    猜你喜欢
    • 2021-08-22
    • 2013-08-27
    • 1970-01-01
    • 2018-03-08
    • 1970-01-01
    • 2020-12-09
    • 2022-01-04
    • 1970-01-01
    • 2015-01-02
    相关资源
    最近更新 更多