Python查找以txt结尾的最后修改的文件的绝对路径
glob 模块是 Python 内置的一个文件查找模块,用于搜索符合特定规则的文件路径。其基本语法格式如下:
glob.glob(pathname, *, recursive=False)
其中 pathname
参数表示需要搜索的文件路径,可以是相对路径或绝对路径。而 *
表示可选的参数,recursive
参数控制是否递归搜索子目录,默认为 False
。
pathname
参数可以使用通配符进行文件名匹配,常用的通配符有:
*
:匹配任意数量的任意字符?
:匹配一个任意字符[...]
:匹配方括号内的任意一个字符[!...]
:匹配不在方括号内的任意一个字符
下面是一些使用示例:
import glob
# 查找当前目录下所有以 .txt 结尾的文件
txt_files = glob.glob('*.txt')
# 查找当前目录及其子目录下所有以 .py 结尾的文件
py_files = glob.glob('**/*.py', recursive=True)
# 查找当前目录下所有以 a、b、c 中的任意一个字母结尾的文件
abc_files = glob.glob('*[abc]')
glob
模块还提供了其他一些函数,例如 iglob()
可以返回一个迭代器,glob1(dirname, pattern)
可以在单一目录下查找符合规则的文件名等。
os.path.abspath
是 Python 中 os.path 模块提供的一个函数,用于返回给定路径的绝对路径。 其基本语法格式如下:
os.path.abspath(path)
path
参数表示需要获取绝对路径的文件路径,可以是相对路径或绝对路径。函数返回参数为该路径的绝对路径。
os.path.abspath()
函数的使用方法如下:
import os
path = 'test.txt'
# 获取绝对路径
abs_path = os.path.abspath(path)
print(abs_path)
该代码片段会输出 test.txt
文件的绝对路径,具体输出内容取决于该文件在计算机中的位置。
需要注意的是,os.path.abspath()
函数只能返回给定路径的绝对路径,并不会检查路径是否存在或者路径是否是文件还是目录。如果给定路径不存在,函数会返回一个错误,需要使用异常处理来捕获并处理该错误。
此外,如果需要检查文件或目录是否存在,可以使用 os.path.exists()
函数来进行判断。
os.path.abspath(max(list_files, key=os.path.getctime))
是一个将目录下的文件列表进行处理,返回最新修改的文件的绝对路径的命令。
其中,os.path.abspath()
函数会将相对路径转换为绝对路径,max()
函数会从参数中的对象中返回最大值,而 os.path.getctime()
函数则可以获取文件的最后修改时间。
具体用法如下:
import os
# 获取目录下所有文件
list_files = os.listdir('/path/to/directory')
# 找到最新修改的文件
newest_file = max(list_files, key=os.path.getctime)
# 获取最新修改文件的绝对路径
abs_path = os.path.abspath(newest_file)
print(abs_path)
该代码会输出目录 /path/to/directory
中最新修改文件的绝对路径。
需要注意的是,如果该目录下没有文件或者 getctime()
函数无法获取文件的修改时间,这个命令可能会返回一个错误。因此,在使用这个命令时,需要确保目录中至少有一个文件。
查找以txt结尾的最后修改的文件的绝对路径
root@bogon:/home/test/python# ll *.txt
-rw-r--r--. 1 root root 0 Dec 8 15:40 a1.txt
-rw-r--r--. 1 root root 0 Dec 8 15:40 a2.txt
root@bogon:/home/test/python#
root@bogon:/home/test/python# cat test.py
import glob
import os
txt_files = glob.glob('*.txt')
print(txt_files)
new_file = max(txt_files, key=os.path.getctime)
print(new_file)
abs_path = os.path.abspath(new_file)
print(abs_path)
root@bogon:/home/test/python#
root@bogon:/home/test/python#
root@bogon:/home/test/python#
root@bogon:/home/test/python# python3 test.py
['a1.txt', 'a2.txt']
a2.txt
/home/test/python/a2.txt
root@bogon:/home/test/python#
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!