python

Shebag

1
#!/usr/bin/env python3

写在文件顶部。表示这个py文件可以作为脚步直接运行,系统会使用 python3 执行它。

导入模块

整个导入

1
import os

部分导入

如果只需使用模块的部分函数,可以用 from ... import ...

1
2
3
4
5
6
from dotenv import load_dotenv  # 从 dotenv 模块导入 load_dotenv 函数

# ...

# 使用函数直接写
load_dotenv(...)

字符串处理

字符串常量

python的字符串常量同时支持单引号 ''双引号 ""

内嵌变量

1
2
name = "Becks723"
print(f"Hello! My name is {name}.")

异常处理

写异常

1
raise SomeError(...)
1
2
3
4
5
6
7
8
"""
路径沙箱实现
"""
# 拼接 WORKDIR 和 path_str
path = (WORKDIR / path_str).resolve()
# 如果新路径不在 WORKDIR 中,报 ValueError 醋我
if not path.is_relative_to(WORKDIR):
raise ValueError(f"Path escapes workspace: {path_str}")

try…except 语句

try...except语句用于处理 try 块里的异常,类比 java/C# 的try...catch

  • except 可以有多个,处理不同种错误,一层层滤下来
  • 多种错误的并列写法:(SomeError1, SomeError2) as e:
1
2
3
"""
子进程执行命令,并处理异常
"""

IO

拼接路径

1
path = (base_path / relative_path_str).resolve()
1
2
3
WORKDIR = Path.cwd()  # 当请wd
path = (WORKDIR / "123").resolve()
print(path) # 当前目录/123

是否为相对路径

1
Path.is_relative_to()
1
2
if not some_path.is_relative_to(base_path):
print("not relative path")

读文件

1
Path.read_text()
1
content = some_file.read_text()

写文件

1
Path.write_text(...)
1
2
content = "This is an apple."
some_file.write(content)

函数参数加星号

加一个星号

以元组(tuple)形式传入

1
2
3
4
5
6
7
8
def foo(param1, *param2):
print(param1)
print(param2)

foo(1,2,3,4,5)
# 输出
# 1
# (2, 3, 4, 5)

加两个星号:**kwargs

以字典(dict)形式传入

1
2
3
4
5
6
7
8
def bar(param1, **param2):
print (param1)
print (param2)

bar(1,a=2,b=3)
# 输出
# 1
# {‘a’: 2, 'b': 3}

python
https://becks723.github.io/2025/02/09/python/
作者
Becks723
发布于
2025年2月9日
许可协议