Python查找以txt结尾的最后修改的文件的绝对路径

2023-12-13 05:30:20

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#

文章来源:https://blog.csdn.net/songpeiying/article/details/134880625
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。