【发布时间】:2016-04-13 23:43:04
【问题描述】:
我是 python 的新手(和一般的编码),我一直无法在网上找到解决我的具体问题的方法。我目前正在创建一个允许用户将文件保存到网络位置的工具。该文件将有一个版本号。我想要的是在保存之前让脚本自动版本。我已经完成了脚本的其余部分,但我遇到的问题是自动版本控制。这是我目前所拥有的:
import re
import os
def main():
wip_folder = "L:/xxx/xxx/xxx/scenes/wip/"
_file_list = os.listdir('%s' % wip_folder)
if os.path.exists('%s' wip_path):
for file in _file_list:
versionPattern = re.compile('_v\d{3}')
curVersions = versionPattern.findall('%s' % wip_folder)
curVersions.sort()
nextVersion = '_v%03d' % (int(curVersions[-1][2:]) + 1)
return nextVersion
else:
nextVersion = '_v001'
name = xxx_xxx_xx
name += '%s' nextVersion
name += '_xxx_wip
我应该指出 main() 将被另一个模块中的 QPushbutton 调用。此外,该 wip_path 很可能在其中包含单个文件的多个版本。所以如果wip_path中有这个文件的10个版本,这个保存应该是v011。如果这个问题没有意义,我深表歉意。任何帮助,将不胜感激。谢谢!
【问题讨论】:
-
不完全确定您遇到了什么问题。您只是想确定如何找到过去的版本并正确命名新版本吗?
-
基本上,是的。我需要通过 wip 文件夹找到最高版本号。然后我需要将 1 添加到该版本版本号以获取我存储在变量 nextVersion 中的字符串。然后我将其附加到最终的命名约定中。基本上,如果我的 wip 目录中有 ex_v001.doc ex_v002.doc ex_v003.doc,我希望我的下一个保存被命名为:ex_v004.doc
-
您只需要在循环外编译一次正则表达式。顺便说一句,你的问题 does 是有道理的。但不清楚你的问题是什么。你现在的输出是多少?现在怎么不工作了?
-
我一直在通过尝试打印名称来测试它,以确保我实际上得到了正确的命名约定,但是 pycharm 不打印任何东西