如何在python中的文件夹中生成自动增量?

How to generate auto increment in a folder in python?

我是 Python 的新手。任何人帮助如何生成 B00001、B00002、B00003 等自动递增......它可以使用特定文件夹中的按钮自动保存 excel 文件名。

我试过

global numXlsx
numXlsx = 1
wb.save(f'invoice/B{numXlsx}.xlsx')
numXlsx += 1

但是当我用不同的数据点击几次按钮时,它仍然会覆盖B1.xlsx文件。任何人都可以帮忙:)

您可以尝试使用全局变量并每次递增它。 尝试类似的东西: (初始化为0)

global numXlsx # this is like your counter variable)
wb.save(f'folder/B{numXlsx}.xlsx')
numXlsx += 1 # Incrementing the variable so it does not overwrite the file as your code is doing

祝你有愉快的一天!

听起来你遇到的最大问题是每次按钮点击都是 re-starting 你的 python 脚本的执行,所以使用全局变量将不起作用,因为那不起作用' t 在执行过程中持续存在。在这种情况下,我建议在每次执行脚本时使用 pickle module 之类的东西来存储和重新加载计数器值。使用该模块,您的解决方案可能如下所示:

import pickle
from pathlib import Path

# creates file if it doesn't exist
myfile = Path("save.p")
myfile.touch(exist_ok=True)

persisted = {}
with (open(myfile, "rb")) as f:
    try:
        persisted = pickle.load(f)
    except EOFError:
        print("file was empty, nothing to load")

# use get() to avoid KeyError if key doesn't exist
if persisted.get('counter') is None:
    persisted['counter'] = 1

wb.save(f"invoice/B{persisted.get('counter')}.xlsx")
persisted['counter'] += 1

# save everything back into the same file to be used next execution
pickle.dump(persisted, open(myfile, "wb"))

奖励:如果您希望在文件名中用零填充计数,请在保存文件时在大括号中使用 persisted.get('counter'):05d5 表示您希望结果值至少有 5 个字符长,因此例如 2 将变为 00002,而 111 将变为 00111