Python 如何在子目录中搜索特定文件?

Python 如何在子目录中搜索特定文件?,python,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

假设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。 我想首先在子目录中搜索编号最高(00004.tex)的文件,然后用下一个编号(00005.tex)创建一个新的文件,写“Hello”并将其保存在子目录00005.tex中。
零是必需的还是我可以把它们命名为1.tex、2.tex、3.tex……?

您可以使用glob:

导入全局操作系统
os.chdir(r“路径”)
files=glob.glob(“*.tex”)
条目=已排序([int(entry.split(“.”,1)[0]),用于文件中的条目])
下一个条目=条目[-1]+1
下一个\u条目可以用作新文件名。然后,您可以使用此名称创建一个新文件,并将您的新内容写入该文件

文本,“2”大于“100”,但数字上则相反。编写“00002.txt”和“00100.text”等文件的原因是,对于编号为99999的文件,词法排序与数字排序相同。如果将它们写为“2.txt”和“100.txt”,则需要在排序之前将名称的非扩展名部分更改为整数

在您的情况下,因为您想要下一个最高的数字,所以您需要将文件名转换为整数,以便获得最大值并添加1。因为您无论如何都要转换为整数,所以您的程序不在乎是否预先加上零


因此,选择是基于外部原因。有什么理由使文本排序有效吗?如果不是,那么选择完全是随机的,做你认为更好的事情。

看看这是否回答了你的问题。一旦列表中有了文件名,就可以找到列表的最大值,然后将其递增1,创建新文件并存储它们。如果要按字典顺序对它们进行排序,则必须使用零,否则11.tex将位于2.tex之前。这取决于你如何执行你的例行程序来找到答案的最高数字。也要考虑下面的帖子