os.path 模块主要用于用于处理文件路径和文件名
1. os.path.abspath -返回指定路径的绝对路径。例如:os.path.abspath('test.txt')
返回 /home/user/test.txt
。
1.1 os.path.abspath(__file__) -返回当前文件的绝对路径
#test_demo.py import os print("Print path of current file", os.path.abspath(__file__)) # /Users/xx/Myselfpython/tests/test_demo.py
2.os.path.dirname() -返回文件路径(上一级目录)(返回指定路径的目录名。例如:os.path.dirname('/home/user/test.txt')
返回 /home/user
。)
# test_demo.py import os print("Dirname is:", os.path.dirname(os.path.abspath(__file__))) #/Users/xx/Myselfpython/tests
3.os.path.expanduser() - 把path 中包含的 ~ 和 ~user 转换成用户目录
import os print(os.path.expanduser("~")) /Users/san.zhang
print(os.path.expanduser("../")) ../ print(os.path.abspath(os.path.expanduser("../"))) /Users/san.zhang/myself_project
4. os.path.join()
: 将多个路径组合成一个完整的路径。例如:os.path.join('/usr', 'local', 'bin')
返回 /usr/local/bin
。
--data
--tests
---test_demo
----test_demo.py
如上获取当前路径的上2层的data目录
#test_demo.py import os print("上2层目录下的data路径:", os.path.abspath(os.path.join(os.path.abspath(__file__), "../../data"))) # /Users/xx/Myselfpython/data
注意:join 拼接获取绝对路径时,前母需要加上os.path.abspath
5.os.path.basename()
: 返回指定路径的文件名或目录名。例如:os.path.basename('/home/user/test.txt')
返回 test.txt
。
6.os.path.exists()
: 判断指定路径是否存在。例如:os.path.exists('/home/user/test.txt')
返回 True
或 False
。
7.os.path.isfile()
: 判断指定路径是否为文件。例如:os.path.isfile('/home/user/test.txt')
返回 True
或 False
。
8.os.path.isdir()
: 判断指定路径是否为目录。例如:os.path.isdir('/home/user')
返回 True
或 False
。
9.os.path.splitext()
: 分离文件名和扩展名。例如:os.path.splitext('/home/user/test.txt')
返回 ('/home/user/test', '.txt')
。
10.os.path.getsize()
: 获取文件大小。例如:os.path.getsize('/home/user/test.txt')
返回文件大小,单位为字节。
11.os.path.getmtime()
: 获取文件的修改时间。例如:os.path.getmtime('/home/user/test.txt')
返回文件的修改时间戳。
12. os.listdir()
方法用于返回指定目录下的所有文件和子目录的名称列表。os.listdir()
方法返回一个列表,包含了当前目录下的所有文件和子目录的名称。
例如,要列出当前目录下的所有文件和子目录,可以使用以下代码
# test_demo.py import os print(os.listdir(".")) # list出当前路径下的文件名, 返回类型是list, ['conftest.py', 'test_demo.py', 'search_elastic']
如果要列出指定目录下的所有文件和子目录,只需要将目录路径作为 os.listdir()
方法的参数即可
import os dir_list = os.listdir('/home/user') print(dir_list)
需要注意的是,os.listdir()
方法只会列出目录下的直接子目录和文件,不会递归列出子目录中的文件和子目录。如果需要递归列出子目录中的文件和子目录,可以使用递归函数来实现。