
Python获取文件路径和目录的方法
5星
- 浏览量: 0
- 大小:None
- 文件类型:PDF
简介:
本教程详细介绍了如何使用Python编程语言获取文件路径和操作目录的基本方法,包括常用的os和pathlib模块的应用技巧。
在Python编程中,获取文件路径和目录是日常工作中常见的任务,特别是在处理文件操作和与文件系统交互的时候。本段落将详细介绍如何使用Python来获取文件路径和目录,并涵盖一些相关的文件操作。
首先来看一下如何获得当前的文件路径:
1. 使用内置的`__file__`变量:
```python
import os
current_file_path = __file__
print(fCurrent file path: {current_file_path})
```
在脚本中,使用`__file__`可以获取到当前脚本所在的完整路径。但是需要注意的是,如果该脚本是通过相对路径执行的,则返回值可能是相对于调用目录下的相对路径而非绝对路径。为了确保始终得到绝对路径,请考虑使用 `os.path.abspath(__file__)`.
2. 使用`inspect`模块来获取文件名:
```python
import inspect
current_file_name = inspect.getfile(inspect.currentframe())
print(fCurrent file name: {current_file_name})
```
这种方法可以提供一种更一致的方式来获得当前脚本的路径,不受执行方式的影响。
另外,有时我们需要知道调用某个函数时所在的文件目录。这可以通过`inspect`模块中的 `stack()` 函数来实现:
```python
import inspect
def be_called_function():
frame_stack = inspect.stack()
caller_frame = frame_stack[1]
caller_file_path = caller_frame.filename
print(fCaller file path: {caller_file_path})
def calling_function():
be_called_function()
if __name__ == __main__:
calling_function()
```
上述代码展示了如何获取调用函数的文件路径。
接下来,我们来看看怎样获得目录信息:
1. 获取当前工作目录:
```python
import os
current_working_dir = os.getcwd()
print(fCurrent working directory: {current_working_dir})
```
`os.getcwd()` 函数会返回执行Python命令时的工作目录(即shell所在的位置)。
2. 通过文件路径获取其所在的目录部分:
```python
import os
current_file_path = __file__
current_directory = os.path.dirname(current_file_path)
print(fCurrent directory: {current_directory})
```
使用`os.path.dirname()`可以从一个完整的文件路径中提取出对应的目录信息。
除此之外,还有一些与文件和目录相关的常用操作:
- 文件的常见打开模式包括:
- `r`: 只读(如果文件不存在,则抛出异常)
- `r+`: 读写(如果文件不存在,则抛出异常;在写入时替换原有内容)
- `w`: 写入(如果文件存在,会被清空;若不存在则创建新文件)
- `w+`: 同上
- `a`: 追加模式(如果文件不存在,则会新建一个空白的文本段落件。如果已存在该文件,则在末尾追加内容)。
- `a+`:以上同理。
- 文件操作示例:
```python
file_name = test.txt
new_file_name = new_test.txt
# 创建新空文件
with open(file_name, w) as f:
pass
# 删除该文件
os.remove(file_name)
```
- 使用`os.path.join()`拼接路径,这种方法更加安全且能自动处理不同操作系统下的路径分隔符问题:
```python
current_directory = os.path.dirname(current_file_path) # 获取当前目录名
file_base_name = os.path.basename(current_file_path) # 提取文件的基本名称(不包括扩展名)
new_full_path = os.path.join(current_directory, new_file_name)
```
以上就是Python中获取和操作文件路径及目录的基础知识。掌握这些内容将有助于更有效地处理实际项目中的相关需求。
全部评论 (0)


