该文章同步发布在同名微信公众号“固件工人”上,欢迎大家在微信中搜索“固件工人”微信公众号并关注,获取最新文章信息。
本文简单介绍了python编程中常用的一些目录和文件名操作的方法,在文件读写时通常需要用到这些操作。以下操作需要先通过import语句导入os模块。
1.1 获取当前执行的python脚本文件的完整路径(包含文件名)
可以通过__file__属性来获取当前执行的python脚本文件的完整路径。具体代码如下。
full_file_path = __file__
print(f"full_file_path: {full_file_path}")
我这里的python脚本名称为os_path_test.py,执行结果如下。
full_file_path: c:\Users\fan\Documents\work\ex\python\test1\os_path_test.py
1.2 获取当前执行的python脚本文件所在目录(不包含文件名)
可以通过__file__属性结合os.path.dirname()函数来获取当前执行的python脚本文件所在目录。具体代码如下。
file_dir = os.path.dirname(__file__)
print(f"file_dir: {file_dir}")
我这里的python脚本名称为os_path_test.py,执行结果如下。
file_dir: c:\Users\fan\Documents\work\ex\python\test1
1.3 获取当前执行的python脚本文件的文件名(不包含目录)
可以通过__file__属性结合os.path.basename()函数来获取当前执行的python脚本文件的文件名。具体代码如下。
file_name = os.path.basename(__file__)
print(f"file_name: {file_name}")
我这里的python脚本名称为os_path_test.py,执行结果如下。
file_name: os_path_test.py
1.4 将当前执行的python脚本文件路径拆分,将扩展名拆分出去
可以通过__file__属性结合os.path.splitext()函数来将当前执行的python脚本文件的文件名中的扩展名拆分出去。具体代码如下。
file_path_split = os.path.splitext(__file__)
print(f"file_path_split: {file_path_split}")
我这里的python脚本名称为os_path_test.py,执行结果如下。路径被拆分成了一个字符串的元组。
file_path_split: ('c:\\Users\\fan\\Documents\\work\\ex\\python\\test1\\os_path_test', '.py')
1.5 获取当前工作目录的相对路径
可以通过os.path.curdir变量来获取当前工作目录的相对路径。具体代码如下。
relative_cur_dir = os.path.curdir
print(f"relative_cur_dir: {relative_cur_dir}")
我这里的python脚本名称为os_path_test.py,执行结果如下。可以看到当前路径的相对路径是一个.的符号。
relative_cur_dir: .
1.6 获取当前工作目录的绝对路径
可以通过os.getcwd()函数来获取当前工作目录的绝对路径。具体代码如下。
absolute_cur_dir = os.getcwd()
print(f"absolute_cur_dir: {absolute_cur_dir}")
我这里的python脚本名称为os_path_test.py,执行结果如下。可以看到当前路径的绝对路径是一个完整的路径。
absolute_cur_dir: C:\Users\fan\Documents\work\ex\python
细心的读者可能会发现,从6.2节看到执行的python脚本所在的目录是:
c:\Users\fan\Documents\work\ex\python\test1
而这里获取的当前工作目录是python脚本所在的目录的上级目录,并不是python脚本所在的目录。
这是因为我是使用打开os_path_test.py代码文件,然后单击python执行按钮执行代码的方式来运行python脚本,但是这时命令行执行所在的目录是C:\Users\fan\Documents\work\ex\python,所以造成了2个目录不一致。如下图所示。