首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
第 1章 处理错误和寻求帮助
1.1 如何理解Python错误信息
1.1.1 检查回溯信息
1.1.2 搜索错误信息
1.2 借助linter 避免错误
1.3 如何寻求编程帮助
1.3.1 预先提供信息以避免反复补充
1.3.2 以实际问题的形式陈述问题
1.3.3 在合适的网站上提出你的问题
1.3.4 在标题中概述你的问题
1.3.5 说明代码的预期目的
1.3.6 包含完整的错误信息
1.3.7 分享全部代码
1.3.8 通过适当的格式化增强代码可读性
1.3.9 告诉帮忙者已经尝试过的方法
1.3.10 描述你的设置信息
第 2章 环境设置和命令行
2.1 文件系统
2.1.1 Python中的路径
2.1.2 主目录
2.1.3 当前工作目录
2.1.4 绝对路径和相对路径
2.2 程序和进程
2.3 命令行
2.3.1 打开终端窗口
2.3.2 使用命令行运行程序
2.3.3 使用命令行参数
2.3.4 在命令行中使用-c 运行Python代码
2.3.5 从命令行运行Python 程序
2.3.6 运行py.exe 程序
2.3.7 在Python 程序中运行命令
2.3.8 使用Tab 补全命令减少输入量
2.3.9 查看历史命令
2.3.10 使用常用命令
2.4 环境变量和PATH
2.4.1 查看环境变量
2.4.2 使用PATH 环境变量
2.4.3 更改命令行的PATH 环境变量
2.4.4 在Windows 上将文件夹永久添加到PATH
2.4.5 在macOS 和Linux 上将文件夹永久添加到PATH
2.5 不借助命令行运行Python 程序
2.5.1 在Windows 上运行Python程序
2.5.2 在macOS 上运行Python 程序
2.5.3 在Ubuntu Linux 上运行Python程序
第3章 使用Black 进行代码格式化
3.1 让程序员招人烦的错误做法
3.2 风格指南和PEP 8
3.3 水平间距
3.3.1 使用空格进行缩进
3.3.2 行内间距
3.4 垂直间距
3.4.1 垂直间距示例
3.4.2 垂直间距的最佳实践
3.5 Black:毫不妥协的代码格式化工具
3.5.1 安装Black
3.5.2 在命令行中运行Black
3.5.3 对部分代码禁用Black
当前位置:
首页>>
技术小册>>
Python编程轻松进阶(一)
小册名称:Python编程轻松进阶(一)
### 2.1.1 Python中的路径 在Python编程中,路径操作是一项基础而频繁的任务,它涉及到文件系统的导航、文件的读取与写入、目录的遍历等。无论是进行数据分析、Web开发、自动化脚本编写还是任何形式的文件处理,理解并熟练掌握Python中的路径操作都是至关重要的。本章节将深入探讨Python中路径的基本概念、表示方法、操作函数以及跨平台兼容性处理,帮助读者轻松进阶Python编程。 #### 2.1.1.1 路径的基本概念 在计算机科学中,路径是指从根目录(或某个指定起点)到某个文件或目录的完整地址序列。路径分为绝对路径和相对路径两种形式: - **绝对路径**:从根目录(或根分区)开始的完整路径,包含了到达目标文件或目录所需的所有目录层级,具有唯一性。例如,在Windows系统中,`C:\Users\Example\Documents\file.txt`是一个绝对路径;在Linux或Mac OS中,`/home/user/documents/file.txt`同样表示一个绝对路径。 - **相对路径**:相对于当前工作目录的路径。它不需要从根目录开始,而是从当前操作的目录位置出发,逐级指向目标文件或目录。例如,如果当前工作目录是`/home/user/documents`,那么`./file.txt`(或简单地`file.txt`)和`../reports/report.pdf`分别表示当前目录下的`file.txt`文件和上一级目录下的`reports`文件夹中的`report.pdf`文件。 #### 2.1.1.2 Python中的路径表示 在Python中,路径通常以字符串的形式表示,但Python标准库提供了`os.path`(在Python 3.4及以后版本中推荐使用`pathlib`)等模块来简化路径操作,避免直接使用字符串拼接带来的复杂性和潜在的错误。 - **使用`os.path`模块**:`os.path`模块提供了丰富的函数来处理路径字符串,如拼接、分割、获取文件扩展名等。然而,`os.path`的API设计较为底层,基于字符串操作,因此在处理复杂路径时可能会稍显繁琐。 ```python import os # 拼接路径 path = os.path.join('home', 'user', 'documents', 'file.txt') # 获取文件扩展名 ext = os.path.splitext(path)[1] # 判断是否为文件 is_file = os.path.isfile(path) ``` - **使用`pathlib`模块(推荐)**:`pathlib`是Python 3.4引入的一个面向对象的文件系统路径库,它提供了一种更加直观和易于使用的方式来处理文件系统路径。`pathlib`中的`Path`对象代表文件系统中的一个路径,支持多种路径操作。 ```python from pathlib import Path # 创建一个Path对象 p = Path('/home/user/documents/file.txt') # 拼接路径 new_path = p.parent / 'reports' / 'report.pdf' # 获取文件扩展名 ext = p.suffix # 判断是否为文件 is_file = p.is_file() ``` #### 2.1.1.3 路径操作函数 无论是使用`os.path`还是`pathlib`,Python都提供了丰富的路径操作函数,包括但不限于: - **路径拼接**:`os.path.join()`或`Path.joinpath()`用于拼接路径片段,确保路径分隔符的正确性。 - **路径分割**:`os.path.split()`或`Path.parent`和`Path.name`用于将路径分割成目录和文件名两部分。 - **获取文件扩展名**:`os.path.splitext()`或`Path.suffix`用于获取文件的扩展名。 - **判断路径类型**:`os.path.isdir()`、`os.path.isfile()`或`Path.is_dir()`、`Path.is_file()`用于判断路径是目录还是文件。 - **遍历目录**:`os.listdir()`、`os.walk()`或`Path.iterdir()`、`Path.glob()`、`Path.rglob()`用于遍历目录内容。 #### 2.1.1.4 跨平台兼容性 在编写跨平台的Python应用时,处理不同操作系统间的路径差异是一个重要考虑因素。`os.path`和`pathlib`都提供了良好的跨平台支持: - **`os.path`**:自动处理不同操作系统间的路径分隔符差异(Windows使用`\`,而Unix/Linux/Mac OS使用`/`)。然而,在编写代码时,应避免直接使用字符串拼接来构建路径,而应使用`os.path.join()`等函数来确保路径的正确性。 - **`pathlib`**:`Path`对象的设计之初就考虑到了跨平台兼容性,它会自动处理路径分隔符等差异。此外,`Path`对象还提供了更加直观和易于理解的方法集,使得路径操作更加Pythonic。 #### 2.1.1.5 实践案例 假设我们需要编写一个Python脚本,该脚本需要遍历指定目录下的所有`.txt`文件,并统计它们的总大小。以下是一个使用`pathlib`实现的示例: ```python from pathlib import Path def total_size_of_txt_files(directory): total_size = 0 for file in directory.glob('**/*.txt'): # 递归搜索所有.txt文件 if file.is_file(): total_size += file.stat().st_size # 累加文件大小 return total_size # 假设我们要处理的目录是'/home/user/documents' directory = Path('/home/user/documents') total_size = total_size_of_txt_files(directory) print(f"Total size of .txt files: {total_size} bytes") ``` 这个脚本首先导入了`pathlib`模块,并定义了一个`total_size_of_txt_files`函数,该函数接受一个`Path`对象作为参数,表示要遍历的目录。函数内部,我们使用`glob`方法递归地搜索该目录下所有的`.txt`文件,并累加它们的大小。最后,函数返回总大小,并打印出来。 #### 结语 通过本章节的学习,我们深入了解了Python中路径的基本概念、表示方法、操作函数以及跨平台兼容性处理。无论是使用传统的`os.path`模块还是现代的`pathlib`库,Python都为我们提供了强大而灵活的工具来简化路径操作。掌握这些技能,将有助于我们更高效地处理文件系统相关的任务,进一步提升Python编程能力。
上一篇:
2.1 文件系统
下一篇:
2.1.2 主目录
该分类下的相关小册推荐:
Python合辑1-Python语言基础
Python合辑12-面向对象
Python合辑6-字典专题
Python面试指南
Python合辑4-130个字符串操作示例
Python编程轻松进阶(二)
实战Python网络爬虫
Python机器学习基础教程(上)
Python合辑10-函数
Python合辑9-判断和循环
Python神经网络入门与实践
Python与办公-玩转PPT