从Excel电子表格中读取,并使用XLSX中的数据重命名多个文件夹

BrightShad0w

我试图编写一个脚本,使用XLSX工作表中的数据,根据其名称和时间戳("COMXYZ_YYYYMMDDHHMMSS"格式也是名称的一部分),重命名特定目录中的多个文件夹

我目录中的文件夹将采用"COM123_YYYYMMDDHHMMSS""COM12_YYYYMMDDHHMMSS"格式"COM1_YYYYMMDDHHMMSS"

XLSX工作表将具有以下字段:

FIELD1 | FIELD2 | FIELD3 | FIELD4 | FIELD5 | FIELD6 | FIELD7
COM12      A        B        C        D        E        F
COM23      A        B        C        D        E        F

我希望目录中具有名称的文件夹"COM12_YYYYMMDDHHMMSS"重命名为:

FIELD3_FIELD4_FIELD2_MMDDYYYY_FIELD5_NUMBER_FIELD6_FIELD7

其中NUMBER(从1开始)根据下划线后名称中的时间戳增加"_",而日期也根据该特定COM#的名称中的时间戳而增加。

我有多个具有相同COM#,但具有不同时间戳的文件夹。到目前为止,我能够为每个COM#重命名1个文件夹,但其余文件夹未重命名。

感谢所有帮助。

到目前为止,我在Aquiles的答案的帮助下编写的代码是:

import os
import random
import string
import datetime
import re
import openpyxl
from collections import namedtuple
# Get Directories
directories = [name for name in os.listdir(r'.') if name.startswith('COM')]
# Load workbook
wb = openpyxl.load_workbook('database.xlsx')
ws = wb['Sheet1']
rows = 20
for i in xrange(2, rows + 2):
    if ws['A%s' % i].value >= "":
        folder_to_change = [x for x in directories if x.startswith((ws['A%s' % i].value) + '_')]
        folder_to_change = folder_to_change[0] if len(folder_to_change) > 0 else None
        date_used = {}
        if folder_to_change:
            directories.remove(folder_to_change)
            # print folder_to_change
            folder_parts = folder_to_change.split('_')
            comport = folder_parts[0]
            timestamp = folder_parts[1]
            # print timestamp
            ts = re.search('(....)(....)(......)', timestamp)
            date = ts.group(2) + ts.group(1)
            # print date
            time = comport
            # print time
            date_used[comport] = 1 if comport not in date_used else date_used[comport] + 1
            # print date_used
            # print folder_to_change
            os.rename(
              folder_to_change,
              '{0}_{1}_{2}_{3}_{4}_{5}_{6}_{7}_{8}'.format(
                ws['B%s' % i].value,
                ws['C%s' % i].value,
                ws['G%s' % i].value,
                date,
                ws['D%s' % i].value,
                date_used[comport],
                ws['F%s' % i].value,
                ws['H%s' % i].value,
                ws['I%s' % i].value
                )
              )
阿喀琉斯

我还没有测试过,某些索引和东西可能不是正确的,但是您会从中得到灵感。我相信这可以工作:

import os
import openpyxl
import string

# Get directories
directories = [name for name in os.listdir('.')]

# Load Workbook
wb = openpyxl.load_workbook('file.xls')

# Load first work sheet
ws = wb[0]
rows = 10
dates_used = {}
for i in xrange(2, rows + 2):
    folder_to_change = [x for x in directories if x.startswith(ws['A%s' % i])]
    for y, folder in enumerate(folder_to_change):
        date = folder[8:16]
        os.rename(folder, '{0}_{1}_{2}_{3}_{4}_{5}_{6}_{7}'.format(
            ws['C%s' % i], ws['D%s' % i], ws['B%s' % i], date, ws['E%s' % i], 
            y+1, ws['F%s' % i], ws['G%s' % i])

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用电子表格重命名多个文件夹?

来自分类Dev

如何使用电子表格重命名多个文件夹?

来自分类Dev

如何使用VBA在Excel电子表格中的列表中打开文件夹

来自分类Dev

如何重命名 Google 电子表格(文件)并使用工作表中的值填充其内容

来自分类Dev

将电子表格另存为给定文件夹中的csv文件

来自分类Dev

使用客户端API在Google云端硬盘应用数据文件夹中创建Google表格电子表格

来自分类Dev

如何通过App脚本在特定文件夹中创建电子表格

来自分类Dev

如何从特定的Google云端硬盘文件夹中获取电子表格?

来自分类Dev

如何通过App脚本在特定文件夹中创建电子表格

来自分类Dev

使用VB允许用户选择一个文件夹,该文件夹将所有文件加载到电子表格中

来自分类Dev

读取包含非传统电子表格的压缩文件夹

来自分类Dev

使用Perl从Excel电子表格中读取法语字符

来自分类Dev

使用Perl从Excel电子表格中读取法语字符

来自分类Dev

无法使用PHP中的Spreadsheet_Excel_Reader从电子表格读取时间值

来自分类Dev

如何使用php Excel在excel电子表格中插入数据

来自分类Dev

用于从多个不同电子表格中编译数据的 Google 脚本,这些电子表格是同一文件的副本

来自分类Dev

如何通过Python中的Google Drive API重命名Google电子表格?

来自分类Dev

在与当前文件相同的文件夹中创建一个Google电子表格

来自分类Dev

使用VBA在Excel电子表格中设置数据格式

来自分类Dev

如何使用OleDbDataAdapter从Excel文件中的任何电子表格中进行选择

来自分类Dev

有没有更快的方法来在特定文件夹中创建Google电子表格?

来自分类Dev

我该如何修改以将电子表格保存到新文件夹中

来自分类Dev

有没有更快的方法来在特定文件夹中创建Google电子表格?

来自分类Dev

将电子表格复制到特定文件夹并从副本中删除查看器

来自分类Dev

Gsheets Apps 脚本:在 Google Drive 的特定文件夹中制作电子表格的副本

来自分类Dev

如何从包含多个表格的 Excel 电子表格中根据其标题选择表格?

来自分类Dev

如何使用Google App脚本在Google驱动器中的特定文件夹中生成Google电子表格的JSON?

来自分类Dev

如何使用Google脚本将电子表格复制到GDrive上的specifc文件夹中,而无需复制关联的表单和脚本

来自分类Dev

如何使用Google App脚本在Google驱动器中的特定文件夹中生成Google电子表格的JSON?

Related 相关文章

  1. 1

    如何使用电子表格重命名多个文件夹?

  2. 2

    如何使用电子表格重命名多个文件夹?

  3. 3

    如何使用VBA在Excel电子表格中的列表中打开文件夹

  4. 4

    如何重命名 Google 电子表格(文件)并使用工作表中的值填充其内容

  5. 5

    将电子表格另存为给定文件夹中的csv文件

  6. 6

    使用客户端API在Google云端硬盘应用数据文件夹中创建Google表格电子表格

  7. 7

    如何通过App脚本在特定文件夹中创建电子表格

  8. 8

    如何从特定的Google云端硬盘文件夹中获取电子表格?

  9. 9

    如何通过App脚本在特定文件夹中创建电子表格

  10. 10

    使用VB允许用户选择一个文件夹,该文件夹将所有文件加载到电子表格中

  11. 11

    读取包含非传统电子表格的压缩文件夹

  12. 12

    使用Perl从Excel电子表格中读取法语字符

  13. 13

    使用Perl从Excel电子表格中读取法语字符

  14. 14

    无法使用PHP中的Spreadsheet_Excel_Reader从电子表格读取时间值

  15. 15

    如何使用php Excel在excel电子表格中插入数据

  16. 16

    用于从多个不同电子表格中编译数据的 Google 脚本,这些电子表格是同一文件的副本

  17. 17

    如何通过Python中的Google Drive API重命名Google电子表格?

  18. 18

    在与当前文件相同的文件夹中创建一个Google电子表格

  19. 19

    使用VBA在Excel电子表格中设置数据格式

  20. 20

    如何使用OleDbDataAdapter从Excel文件中的任何电子表格中进行选择

  21. 21

    有没有更快的方法来在特定文件夹中创建Google电子表格?

  22. 22

    我该如何修改以将电子表格保存到新文件夹中

  23. 23

    有没有更快的方法来在特定文件夹中创建Google电子表格?

  24. 24

    将电子表格复制到特定文件夹并从副本中删除查看器

  25. 25

    Gsheets Apps 脚本:在 Google Drive 的特定文件夹中制作电子表格的副本

  26. 26

    如何从包含多个表格的 Excel 电子表格中根据其标题选择表格?

  27. 27

    如何使用Google App脚本在Google驱动器中的特定文件夹中生成Google电子表格的JSON?

  28. 28

    如何使用Google脚本将电子表格复制到GDrive上的specifc文件夹中,而无需复制关联的表单和脚本

  29. 29

    如何使用Google App脚本在Google驱动器中的特定文件夹中生成Google电子表格的JSON?

热门标签

归档