跳转至

常见标准库

OS

Python的os模块提供了一些与操作系统交互的功能,这使得程序能够执行如文件和目录的操作、获取系统信息、执行命令等。以下是一些常用的os模块函数的详细介绍:

文件和目录操作

  1. os.getcwd():
  2. 获取当前工作目录的路径。
  3. 示例:
import os
current_directory = os.getcwd()
print(current_directory)
  1. os.chdir(path):
  2. 改变当前工作目录。
  3. 示例:
os.chdir('/path/to/directory')
  1. os.listdir(path='.'):
  2. 返回指定目录下的文件和目录列表。
  3. 示例:
files = os.listdir('/path/to/directory')
print(files)
  1. os.mkdir(path):
  2. 创建一个新的目录。
  3. 示例:
os.mkdir('/path/to/new_directory')
  1. os.makedirs(path):
  2. 递归地创建目录。
  3. 示例:
os.makedirs('/path/to/new_directory/sub_directory')
  1. os.remove(path):
  2. 删除文件。
  3. 示例:
os.remove('/path/to/file.txt')
  1. os.rmdir(path):
  2. 删除目录。
  3. 示例:
os.rmdir('/path/to/directory')
  1. os.removedirs(path):
  2. 递归地删除目录。
  3. 示例:
os.removedirs('/path/to/directory/sub_directory')
  1. os.rename(src, dst):
  2. 重命名文件或目录。
  3. 示例:
os.rename('/path/to/file.txt', '/path/to/new_file.txt')
  1. os.stat(path):
  2. 获取文件或目录的状态信息。
  3. 示例:
stats = os.stat('/path/to/file.txt')
print(stats)
  1. os.walk()

os.walk 是一个生成器函数,它返回一个三元组 (dirpath, dirnames, filenames)。具体来说:

  • dirpath:当前遍历到的目录的路径(字符串)。
  • dirnames:该目录下的子目录名列表(列表中的每一项是一个字符串)。
  • filenames:该目录下的文件名列表(列表中的每一项是一个字符串)。

路径操作

  1. os.path.basename(path):
  2. 返回路径的基本名称。
  3. 示例:
base_name = os.path.basename('/path/to/file.txt')
print(base_name)  # 输出 'file.txt'
  1. os.path.dirname(path):
  2. 返回路径的目录部分。
  3. 示例:
dir_name = os.path.dirname('/path/to/file.txt')
print(dir_name)  # 输出 '/path/to'
  1. os.path.join(path, *paths):
  2. 将多个路径组合成一个路径。
  3. 示例:
full_path = os.path.join('/path', 'to', 'file.txt')
print(full_path)  # 输出 '/path/to/file.txt'
  1. os.path.split(path):
  2. 将路径拆分为目录和文件名。
  3. 示例:
dir_name, base_name = os.path.split('/path/to/file.txt')
print(dir_name)   # 输出 '/path/to'
print(base_name)  # 输出 'file.txt'
  1. os.path.exists(path):
  2. 检查路径是否存在。
  3. 示例:
exists = os.path.exists('/path/to/file.txt')
print(exists)  # 输出 True 或 False
  1. os.path.isabs(path):
  2. 检查路径是否为绝对路径。
  3. 示例:
is_absolute = os.path.isabs('/path/to/file.txt')
print(is_absolute)  # 输出 True 或 False
  1. os.path.isfile(path):
  2. 检查路径是否为文件。
  3. 示例:
is_file = os.path.isfile('/path/to/file.txt')
print(is_file)  # 输出 True 或 False
  1. os.path.isdir(path):
  2. 检查路径是否为目录。
  3. 示例:
is_dir = os.path.isdir('/path/to/directory')
print(is_dir)  # 输出 True 或 False
  1. os.path.getsize(path):
  2. 返回文件的大小(以字节为单位)。
  3. 示例:
size = os.path.getsize('/path/to/file.txt')
print(size)
  1. os.path.abspath(path):
  2. 返回路径的绝对路径。
  3. 示例:
abs_path = os.path.abspath('file.txt')
print(abs_path)

系统信息

  1. os.name:
  2. 返回当前操作系统的名称。
  3. 示例:
os_name = os.name
print(os_name)  # 输出 'posix', 'nt' 等
  1. os.environ:
  2. 一个表示系统环境变量的字典。
  3. 示例:
home_dir = os.environ['HOME']
print(home_dir)

执行系统命令

  1. os.system(command):
  2. 在子终端中执行系统命令。
  3. 示例:
os.system('ls -l')
  1. os.popen(command):
  2. 执行系统命令并返回一个文件对象。
  3. 示例:
stream = os.popen('ls -l')
output = stream.read()
print(output)

os模块是Python标准库中功能非常强大的一个模块,它提供了对操作系统功能的访问,适用于需要进行文件操作、路径处理和执行系统命令的场景。

sys

sys模块是Python标准库的一部分,提供了一些与Python解释器进行交互的函数和变量。这个模块常用于处理运行时环境配置、管理输入输出、操作Python运行时环境以及访问传递给脚本的命令行参数。

以下是sys模块的详细介绍:

1. 命令行参数

  • sys.argv: 这是一个列表,包含了运行Python脚本时传递的命令行参数。sys.argv[0]是脚本的名称,后面的元素是传递给脚本的参数。
import sys

# 示例: python script.py arg1 arg2
print(sys.argv)  # 输出: ['script.py', 'arg1', 'arg2']

2. 程序退出与错误处理

  • sys.exit([arg]): 该函数用于退出程序,并可以选择性地返回一个状态码。通常,0表示程序正常退出,非零表示异常退出。你也可以传递一个字符串作为错误消息。
import sys

# 正常退出
sys.exit(0)

# 异常退出
sys.exit("Error occurred")

3. 标准输入输出

  • sys.stdin: 表示标准输入(通常是键盘输入),你可以用它来从命令行或其他输入流中获取输入。
import sys

# 从标准输入读取一行
user_input = sys.stdin.readline()
print(f"输入内容: {user_input}")
  • sys.stdout: 表示标准输出(通常是控制台),可以用它来输出数据。
import sys

# 打印到标准输出
sys.stdout.write("Hello, World!\n")
  • sys.stderr: 表示标准错误输出流,通常用于输出错误信息。
import sys

# 输出错误信息
sys.stderr.write("Error: Something went wrong\n")

4. 解释器相关

  • sys.version: 获取Python解释器的版本信息。
import sys

print(sys.version)  # 输出Python版本信息
  • sys.platform: 获取当前运行Python的操作系统平台名称。
import sys

print(sys.platform)  # 输出: 'linux', 'darwin'(macOS), 'win32' 等
  • sys.path: 返回模块搜索路径的列表,Python会在这些路径中查找要导入的模块。可以动态地修改这个列表来改变模块的查找路径。
import sys

print(sys.path)  # 输出当前的模块搜索路径列表

5. 内存管理

  • sys.getsizeof(object): 返回对象在内存中的大小,单位是字节。
import sys

x = [1, 2, 3, 4, 5]
print(sys.getsizeof(x))  # 输出对象x的字节大小

6. 运行时信息

  • sys.modules: 一个字典,包含了当前导入的所有模块的名称和对应的模块对象。
import sys

print(sys.modules.keys())  # 输出当前已导入的模块名称
  • sys.maxsize: 返回Python中整数的最大值(与系统的位数相关)。
import sys

print(sys.maxsize)  # 输出系统支持的最大整数值

7. 异常处理

  • sys.exc_info(): 返回当前处理的异常类、异常实例以及异常回溯对象。这对于在异常处理过程中获取更多上下文信息非常有用。
import sys

try:
    1 / 0
except:
    print(sys.exc_info())  # 输出异常信息

总结

sys模块为Python程序提供了与解释器、操作系统交互的多种方法,使得程序员能够更加灵活地控制程序的执行环境和行为。在编写复杂的Python脚本时,熟练使用sys模块会非常有帮助。