Python高级编程实用技巧与示例
立即解锁
发布时间: 2025-09-01 00:35:15 阅读量: 11 订阅数: 15 AIGC 

### Python高级编程实用技巧与示例
#### 1. 发送电子邮件
在Python中,我们可以利用`smtplib`库通过简单邮件传输协议(SMTP)来发送电子邮件。以Google的Gmail为例,为了保证安全性,我们需要使用应用专用密码。以下是具体步骤:
1. 登录Google账户,访问[Google账户设置](https://myaccount.google.com/),点击左侧导航栏的“安全”选项。
2. 在“登录Google”部分,选择“应用专用密码”。注意,此选项需要你的Google账户开启两步验证。
3. 在“选择应用”下拉列表中,选择“电子邮件”;在“选择设备”下拉列表中,选择“其他”,并为设备(如树莓派)命名,例如“Raspberry Pi Python”。
4. 点击“生成”按钮,系统将为你生成一个密码,复制该密码。
以下是示例代码(`ch_07_gmail.py`):
```python
import smtplib
GMAIL_USER = 'your email address'
GMAIL_PASS = 'your password'
SMTP_SERVER = 'smtp.gmail.com'
SMTP_PORT = 587
def send_email(recipient, subject, text):
smtpserver = smtplib.SMTP(SMTP_SERVER, SMTP_PORT)
smtpserver.ehlo()
smtpserver.starttls()
smtpserver.ehlo
smtpserver.login(GMAIL_USER, GMAIL_PASS)
header = 'To:' + recipient + '\n' + 'From: ' + GMAIL_USER
header = header + '\n' + 'Subject:' + subject + '\n'
msg = header + '\n' + text + ' \n\n'
smtpserver.sendmail(GMAIL_USER, recipient, msg)
smtpserver.close()
send_email('destination email address', 'subject', 'message')
```
使用时,需要将`GMAIL_USER`和`GMAIL_PASS`替换为你的邮箱凭证,对于Gmail,密码应为刚刚生成的应用专用密码。若使用其他邮箱,还需修改`SMTP_SERVER`和`SMTP_PORT`的值。
#### 2. 创建简单的Web服务器
若你需要创建一个简单的Python Web服务器,且不想运行完整的Web服务器栈,可以使用`bottle`库。以下是具体操作:
1. 安装`bottle`库,使用命令:
```bash
$ sudo pip3 install bottle
```
2. 以下是示例代码(`ch_07_bottle_test.py`):
```python
from bottle import route, run, template
from datetime import datetime
@route('/')
def index(name='time'):
dt = datetime.now()
time = "{:%Y-%m-%d %H:%M:%S}".format(dt)
return template('<b>Pi thinks the date/time is: {{t}}</b>', t=time)
run(host='0.0.0.0', port=80)
```
3. 启动程序时,需要以超级用户权限运行:
```bash
$ sudo python3 ch_07_bottle_test.py
```
#### 3. 让Python暂停执行
若你想让Python暂停一段时间,可以使用`time`库中的`sleep`函数。以下是示例代码(`ch_07_sleep_test.py`):
```python
import time
x = 0
while True:
print(x)
time.sleep(1)
x += 1
```
`sleep`函数的参数表示暂停的秒数,若需要更短的延迟,可以使用小数,如`time.sleep(0.001)`表示暂停1毫秒。
#### 4. 同时执行多项任务
若你的Python程序在执行一项任务时,还想同时执行其他任务,可以使用`threading`库。以下是示例代码(`ch_07_thread_test.py`):
```python
import threading, time, random
def annoy(message):
while True:
time.sleep(random.randint(1, 3))
print(message)
t = threading.Thread(target=annoy, args=('BOO !!',))
t.start()
x = 0
while True:
print(x)
x += 1
t
```
0
0
复制全文
相关推荐










