如何在Python脚本所在目录下打开一个文件?

如何在Python脚本所在目录下打开一个文件?

在Python中,经常需要读取或写入文件。但是,如果不知道文件的路径该怎么办?如何在Python脚本所在目录下打开一个文件?

下面介绍几种方法。

阅读更多:Python 教程

方法一:使用os模块

我们可以使用os模块来获取当前脚本所在目录的绝对路径,然后拼接文件名就可以得到文件的绝对路径。示例如下:

import os

# 获取当前脚本所在目录的绝对路径
dir_path = os.path.abspath(os.path.dirname(__file__))

# 拼接文件的绝对路径
file_path = os.path.join(dir_path, 'example.txt')

# 打开文件
with open(file_path, 'r') as f:
    print(f.read())

上述代码中,os.path.abspath(os.path.dirname(__file__))可以获取当前脚本所在目录的绝对路径。其中,__file__表示当前脚本的文件名,os.path.dirname()可以获取当前脚本所在目录的路径,os.path.abspath()可以将相对路径转换为绝对路径。然后,使用os.path.join()函数将目录路径和文件名拼接成文件的绝对路径。最后,使用with open()语句打开文件,并读取文件内容。

方法二:使用Path对象

Python 3.4版本引入了pathlib模块,可以使用Path对象来操作文件路径。使用Path.cwd()可以获取当前工作目录的Path对象,使用Path(__file__).parent可以获取当前脚本所在目录的Path对象。示例如下:

from pathlib import Path

# 获取当前脚本所在目录的Path对象
dir_path = Path(__file__).parent.absolute()

# 拼接文件的绝对路径
file_path = dir_path / 'example.txt'

# 打开文件
with open(file_path, 'r') as f:
    print(f.read())

上述代码中,Path(__file__).parent可以获取当前脚本所在目录的Path对象,使用Path.absolute()方法将其转换为绝对路径。然后,使用/操作符将目录路径和文件名拼接成文件的绝对路径。最后,使用with open()语句打开文件,并读取文件内容。

方法三:设置工作目录

另外一种方法是将当前脚本所在目录设置为工作目录。这样,在打开文件时只需要使用文件名即可,Python会自动在工作目录下查找该文件。示例如下:

import os

# 获取当前脚本所在目录的绝对路径
dir_path = os.path.abspath(os.path.dirname(__file__))

# 设置工作目录
os.chdir(dir_path)

# 打开文件
with open('example.txt', 'r') as f:
    print(f.read())

上述代码中,os.chdir()函数可以将当前工作目录切换到指定目录。然后,在打开文件时只需要使用文件名即可,Python会自动在工作目录下查找该文件。

注意:在修改工作目录时需要格外小心,不要误操作导致其它文件被覆盖或删除。

结论

以上是三种常见的在Python脚本所在目录下打开文件的方法。这些方法都可以灵活地应用于不同的场景中。建议根据实际需要选择合适的方法。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程