python - Python创建增量文件夹
问题描述
我正在尝试创建一个脚本,每次运行脚本时都会创建一个文件夹。我希望名称以增加 1 的数字结尾。所以,运行一次得到我的文件夹 1,再次运行得到我的文件夹 2,依此类推。我当前的代码运行一次并创建文件夹 1 和文件夹 2,之后每次运行都会创建一个我想要的文件夹。为什么第一次运行会创建 2 个文件夹?
import os
counter = 1
mypath =. ('C:/Users/jh/Desktop/request'+(str(counter)) +'/')
if not os.path.exists(mypath):
os.makedirs(mypath)
print ("Path is created")
while os.path.exists(mypath):
counter +=1
mypath = ('C:/Users/jh/Desktop/request'+(str(counter)) +'/')
print(mypath)
os.makedirs(mypath)
解决方案
发生这种情况是因为您的代码实际上看起来像这样,删除了不必要的变量:
import os
counter = 1
mypath = 'C:/Users/jh/Desktop/request1/'
if not os.path.exists(mypath):
os.makedirs(mypath)
print ("Path is created")
while os.path.exists(mypath):
counter += 1
mypath = 'C:/Users/jh/Desktop/request'+(str(counter)) +'/'
print(mypath)
os.makedirs(mypath)
如您所见,“request1”文件夹是在第一个程序运行时创建的,然后继续正常运行。这很容易解决,只需删除第一个 if 语句:
import os
counter = 1
mypath = 'C:/Users/jh/Desktop/request1/'
while os.path.exists(mypath):
counter += 1
mypath = 'C:/Users/jh/Desktop/request'+(str(counter)) +'/'
print(mypath)
os.makedirs(mypath)
如果可以的话,我会删除额外的括号以提高可读性并使用 f 字符串,例如
mypath = f'C:/Users/jh/Desktop/request{counter}/'
推荐阅读
- flutter - 如何从 RiverPod 中的构造函数初始化 stateProvider
- database - 如何在 Oracle 数据库中以分号为基础拆分列中的值?
- flutter - RepaintBoundary 小部件到 png 不能用透明背景保存?
- deployment - 无法将 Rails 部署到生产环境。部署失败,有关详细信息,请参阅 log/capistrano.log。您的捆绑包已锁定为 mimemagic (0.3.5)
- string - 以位为单位的字符串长度计算
- django - 在小型 Django 应用程序中接收和回复电子邮件的便捷解决方案
- tinkerpop - 具有 AWStune lamfgbhbda 功能的 loemlin
- parsing - 为方案语言启动解析器
- r - 在 R 中的两列上使用 pivot_wide() 从长转换为宽
- reactjs - 材料ui:reactjs:tablecell:宽度适合内容