Python文件操作 | 您所在的位置:网站首页 › 快速生成文件的软件叫什么名字 › Python文件操作 |
写在前面
今天在分类代码和整理文件时发现需要创建近100个文件夹,文件夹名呈规律性递增,如‘Question1-lv1’,‘Question2-lv1’, ‘Question(n)-lv1’, 这是问题数量的递增,然后便是问题等级的递增,Q1~Q30 为等级一类型,Q20~60为等级二,其余为等级三。在用鼠标点点点创建了5个文件以后,猛然醒悟:这样下去得创建到猴年马月,于是捣鼓了一下Python的文件操作。实现了一下功能: 批量生成文件批量删除批量改名将同一段内容批量写进文件中创建文件夹的同时再在该文件夹下创建子文件夹(循环往复) 技术不精,批量生成的文件夹的名字需要有规律哈哈 不管我们在哪个行业,都值得不断学习提高效率的办法,我将程序打包后发给从事文书工作的亲戚们也受到了不少好评: 原来创建文件还可以这样做,比人手快多了。 准备工作 Pycharm2017(懒于升级)500ml水首先,Python对文件实现操作需要用到 os 模块 import os 思路过程首先我欲创建的带名字的文件夹们如下: 结果如图 新单词:path, mode, exit: path: 路径mode:n. 模式;方式;风格;时尚 n. (Mode)人名;(德、英、法、乍、瑞典)莫德 这个mode直接理解为文件名就可以啦exit:存在即括号内有这三个参数可以选择,这里我们舍去参数path,表示就是在当前路径下面创建,即Pycharm左侧工作栏可以看到的,exit_ok: 表示如果文件夹已经存在,那就什么都不做,这里我给了这个exit_ok,加粗,因为有个重点,如果重复创建相同名字的文件夹,则会报错 makedirs:做 dir 嘶,这里有复数,难道就这么简单就可以创建目录们了吗? import os os.makedirs('这是要被创建的文件夹')结果 mode: Question()–lv2,中间的阔哈是要循环添加进去的数字 个人感觉精华全部在这里了,当时想着这么能够循环输出类似的效果
请看大屏幕 简短的休息过后,再次灵光一闪,这个 mode 不就是: "Question{}–lv2" 吗?,于是赶紧放进循环 mode = 'Quesiton{}--Lv2' for i in range(1,5): print(mode.format(i))
好了,离大功告成只剩一步了,只需要将print改成 os.马克敌人是 就行了,当然也不要忘了加上 exit_ok=True 这个参数,养成提前预测到异常出现的地方是一个非常好的习惯哈 mode = 'Quesiton{}--lv2' for i in range(1,5): os.makedirs(mode.format(i), exist_ok=True)大功告成,请看左栏 还是猛地发现我文件夹的命名有点问题,lv 不够 Lv 美观,完蛋了,难道要全部删除创建好的再来一次吗?经过第一次猛然醒悟以后便有了信心,不如来个循环更改名字? 说干就干,我们先来试一下更改单个文件夹的名字 一开始左栏有一个文件夹的名字为
看到这里,大家肯定已经轻松知道要使用格式化,循环填补数字来实现改名了。 因为有两个参数,自然而然就应该能想到应该要两个格式化 来试一下 mode = 'Quesiton{}--lv2' new_mode = 'Question{}--Lv2' for i in range(1,5): os.rename(mode.format(i), new_mode.format(i))
这里就不一一解释啦,pass为占位语句,想不出写什么,但是又要保持程序完整性,所以就先占个位置 大功告成,请看右边写内容的时候应该改为追加写,即a:append,否则会覆盖掉之前的内容,不过因为这五个文件里面本来什么都没有所以这里可以不用管,但是为了保持良好的习惯还是 a它一下吧 content = '这个东西得想办法写进刚刚创建的五个文本文档(记事本)里面' mode = '我是第{}个文件夹啊' for i in range(1,5): with open(mode.format(i) + '.txt', 'a', encoding='utf-8') as f: f.write(content)覆盖写和追加写绝对是一个超级大坑,在两个不同的py文件也可以跨区域影响 坑点可以见我另一篇博客 https://blog.csdn.net/weixin_43329700/article/details/86768422 这篇文章只展示了非常小的一部分文件操作,还有各种骚操作有待发掘,望对大家有帮助,有什么更好的方法记得留言分享!PS:养成边编程边喝水的习惯很重要 |
CopyRight 2018-2019 实验室设备网 版权所有 |