Python字符串处理、文件操作与异常处理全解析
立即解锁
发布时间: 2025-08-29 10:27:55 阅读量: 4 订阅数: 17 

# Python 字符串处理、文件操作与异常处理全解析
## 1. 字符串深度探究
### 1.1 正则表达式处理电话号码
正则表达式在字符串处理中非常强大。例如,我们可以使用正则表达式来格式化电话号码。以下是具体的代码实现:
```python
import re
def get_formatted_phone(value):
result = re.fullmatch(r'(\d{3})(\d{3})(\d{4})', value)
return '-'.join(result.groups()) if result else value
# 假设 contactsdf 是一个包含 'Phone' 列的 DataFrame
formatted_phone = contactsdf['Phone'].map(get_formatted_phone)
print(formatted_phone)
contactsdf['Phone'] = formatted_phone
print(contactsdf)
```
上述代码的执行流程如下:
1. 定义 `get_formatted_phone` 函数,使用 `re.fullmatch` 函数匹配 10 位连续数字。
2. 如果匹配成功,使用 `'-'.join(result.groups())` 将匹配到的三组数字用 `-` 连接起来;如果匹配失败,则返回原始值。
3. 使用 `Series.map` 方法将 `get_formatted_phone` 函数应用到 `contactsdf` 的 `Phone` 列上,得到格式化后的电话号码。
4. 将格式化后的电话号码赋值给 `contactsdf` 的 `Phone` 列。
### 1.2 字符串处理方法总结
字符串处理还有许多其他的方法,以下是一些常见方法的总结:
| 方法 | 描述 |
| ---- | ---- |
| `f-strings` 和 `string.format` | 用于格式化数据 |
| 字符串拼接和重复的增强赋值 | 如 `+=` 和 `*=` |
| 去除字符串首尾空格 | `strip()`、`lstrip()`、`rstrip()` |
| 改变字符串大小写 | `upper()`、`lower()`、`capitalize()`、`title()` |
| 分割字符串 | `split()` |
| 连接可迭代对象的字符串 | `join()` |
| 字符测试方法 | `isalpha()`、`isdigit()`、`isalnum()` 等 |
### 1.3 正则表达式的其他应用
正则表达式除了用于电话号码格式化,还有其他很多应用,例如:
- **数据验证**:使用 `fullmatch` 函数确保整个字符串匹配某个模式。
- **替换子字符串**:使用 `replace` 函数搜索并替换子字符串。
- **字符串分词**:使用 `split` 函数根据匹配正则表达式模式的分隔符对字符串进行分词。
## 2. 文件与异常处理概述
### 2.1 文件与持久数据
变量、列表、元组等数据结构提供的是临时数据存储,程序结束后数据就会丢失。而文件可以提供长期的数据存储,即使程序终止,数据仍然存在。常见的文件格式有纯文本、JSON 和 CSV。
### 2.2 异常处理的重要性
异常表示程序运行时出现的问题,如 `ZeroDivisionError`、`NameError` 等。使用 `try` 语句和相关的 `except` 子句可以处理这些异常,使程序更加健壮。
## 3. 文件操作
### 3.1 文件的基本概念
Python 将文本文件视为字符序列,二进制文件视为字节序列。每个打开的文件都会创建一个文件对象,用于与文件进行交互。
### 3.2 标准文件对象
Python 程序启动时会创建三个标准文件对象:
- `sys.stdin`:标准输入文件对象
- `sys.stdout`:标准输出文件对象
- `sys.stderr`:标准错误文件对象
### 3.3 文本文件处理
#### 3.3.1 写入文本文件
使用 `with` 语句可以确保资源被正确释放。以下是写入 `accounts.txt` 文件的示例代码:
```python
with open('accounts.txt', mode='w') as accounts:
accounts.write('100 Jones 24.98\n')
accounts.write('200 Doe 345.67\n')
accounts.write('300 White 0.00\n')
accounts.write('400 Stone -42.16\n')
accounts.write('500 Rich 224.62\n')
```
上述代码的执行流程如下:
1. 使用 `open` 函数以写入模式打开 `accounts.txt` 文件。
2. 使用 `write` 方法将五条记录写入文件,每条记录以换行符结尾。
3. `with` 语句结束时,自动调用文件对象的 `close` 方法关闭文件。
#### 3.3.2 读取文本文件
读取文本文件可以使用以下两种方法:
- **逐行读取**:
```python
with open('accounts.txt', mode='r') as accounts:
pri
```
0
0
复制全文
相关推荐










