python - 如何在子目录中搜索特定文件?
问题描述
假设 start.py 位于 C:\。
import os
path = "C:\\Users\\Downloads\\00005.tex"
file = open(path,"a+")
file. truncate(0)
file.write("""Hello
""")
file.close()
os.startfile("C:\\Users\\Downloads\\00005.tex")
在子目录中可能有一些文件。例如:00001.tex、00002.tex、00003.tex、00004.tex。我想首先在 subdir 中搜索具有最高编号 (00004.tex) 的文件,并使用下一个编号 (00005.tex) 创建一个新文件,写入“Hello”并将其保存在 subdir 00005.tex 中。
零是必要的还是我也可以将它们命名为 1.tex、2.tex、3.tex ......?
解决方案
从文字上看,“2”大于“100”,但在数字上当然是相反的。将文件写成“00002.txt”和“00100.text”的原因是对于编号为99999的文件,词法排序与数字排序相同。如果您将它们写为“2.txt”和“100.txt”,那么您需要在排序之前将名称的非扩展部分更改为整数。
在您的情况下,由于您想要下一个最大的数字,因此您需要将文件名转换为整数,以便获得最大值并加 1。由于无论如何您要转换为整数,您的程序并不关心您是否在前面加上零或不。
所以选择是基于外部原因。有什么理由让它可以进行文本排序吗?如果不是,那么选择纯粹是随机的,做任何你认为看起来更好的事情。
推荐阅读
- sql - spark sql数据帧中的迭代,在第一次迭代中获取第一行值,在下一次迭代中获取第二行值,依此类推
- react-native - 如何更改 React Native 底部标签栏图标 onTabPress 的图像?
- excel - VBA 动态搜索模式与动态
- bash - bash 以捕获特定的模式实例并排除其他模式
- mysql - SQL Select Books 基于存储在序列化数组中的类型
- java - Spring Boot 2.0 JNDI 属性值未从应用程序测试属性文件加载
- python - Anaconda 3.6.6 中的 tensorflow-gpu
- c# - OWIN 的 app.usestaticfiles 和 app.usefileserver 有什么区别
- php - 使自定义结帐字段在 Woocommerce 管理订单单页中显示为可编辑
- asynchronous - 使用 Meteor 包装异步使用