当前位置: 首页 > article >正文

Python常用脚本集锦

收集了一些常用Python脚本,作为平时练手使用,也可以作为自己的笔记,用到哪个功能可以自己查询一下即可。

文件和目录管理

复制文件

import shutil

# 复制源文件到目标文件
shutil.copy('source.txt', 'destination.txt')

移动文件

import shutil

# 移动文件到新的路径
shutil.move('source.txt', 'destination.txt')

创建目录结构

import os

# 创建多层目录,如果已经存在则不报错
os.makedirs('dir/subdir/subsubdir', exist_ok=True)

删除空目录

import os

# 删除当前目录下的所有空目录
for root, dirs, files in os.walk('.', topdown=False):
    for name in dirs:
        dir_path = os.path.join(root, name)
        if not os.listdir(dir_path):
            os.rmdir(dir_path)

查找大文件

import os

# 查找当前目录及子目录下大于1MB的文件
for root, dirs, files in os.walk('.'):
    for name in files:
        if os.path.getsize(os.path.join(root, name)) > 1024 * 1024:
            print(os.path.join(root, name))

检查文件是否存在

import os

# 检查指定文件是否存在
if os.path.exists('file.txt'):
    print("File exists.")
else:
    print("File does not exist.")

读取文件内容

with open('file.txt', 'r') as file:    
   content = file.read()

写入文件内容

with open('file.txt', 'w') as file:    
    file.write('Hello, World!')

数据处理

读取 CSV 文件

import csv

# 读取 CSV 文件并打印每一行
with open('data.csv', 'r') as file:
    reader = csv.reader(file)
    for row in reader:
        print(row)

写入 CSV 文件

import csv

# 写入数据到 CSV 文件
data = [['Name', 'Age'], ['Alice', 30], ['Bob', 25]]
with open('data.csv', 'w', newline='') as file:
    writer = csv.writer(file)
    writer.writerows(data)

读取 JSON 文件

import json

# 读取 JSON 文件
with open('data.json', 'r') as file:
    data = json.load(file)

写入 JSON 文件

import json

# 将数据写入 JSON 文件
data = {'name': 'Alice', 'age': 30}
with open('data.json', 'w') as file:
    json.dump(data, file)

过滤列表中的重复项

# 从列表中去除重复项
my_list = [1, 2, 2, 3, 4, 4, 5]
unique_list = list(set(my_list))

排序列表

# 对列表进行排序
my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
sorted_list = sorted(my_list)

网络请求与爬虫

获取网页内容

import requests

# 发送 GET 请求并获取网页内容
response = requests.get('https://www.example.com')
print(response.text)

发送 HTTP POST 请求

import requests

# 发送 POST 请求并打印响应
payload = {'key1': 'value1', 'key2': 'value2'}
response = requests.post('https://httpbin.org/post', data=payload)
print(response.text) 

处理 JSON 响应

import requests

# 获取并解析 JSON 响应
response = requests.get('https://api.example.com/data')
data = response.json()
print(data)

下载图片

import requests

# 下载并保存图片
img_data = requests.get('http://example.com/image.jpg').content
with open('image.jpg', 'wb') as handler:
    handler.write(img_data)

自动化任务

定时执行任务

import schedule
import time

# 定义定时执行的任务
def job():
    print("I'm working...")

# 每10秒执行一次任务
schedule.every(10).seconds.do(job)
while True:
    schedule.run_pending()
    time.sleep(1) 

发送电子邮件

import smtplib
from email.mime.text import MIMEText

# 发送电子邮件
msg = MIMEText('Hello, this is a test email.')
msg['Subject'] = 'Test Email'
msg['From'] = 'your_email@example.com'
msg['To'] = 'recipient@example.com'
s = smtplib.SMTP('localhost')
s.send_message(msg)
s.quit() 

文字处理

统计单词数

# 统计字符串中的单词数
text = "This is a test. This is only a test."
word_count = len(text.split())
print(f"Word count: {word_count}")

替换字符串

# 替换字符串中的子串
text = "Hello, World!"
new_text = text.replace("World", "Python")
print(new_text)

连接字符串

# 将列表中的字符串连接为一个字符串
fruits = ['apple', 'banana', 'orange']
text = ', '.join(fruits)
print(text)

格式化字符串

# 使用 f-string 格式化字符串
name = "Alice"
age = 30
formatted_text = f"Name: {name}, Age: {age}"
print(formatted_text)

其他常见功能

生成随机数

import random

# 生成1到100之间的随机整数
random_number = random.randint(1, 100)
print(random_number)

生成随机密码

python
复制代码
import random
import string

# 生成随机密码
password = ''.join(random.choices(string.ascii_letters + string.digits, k=12))
print(password)

读取环境变量

import os

# 读取指定环境变量
api_key = os.getenv('API_KEY')
print(api_key)

运行系统命令

import subprocess

# 运行系统命令并打印输出
result = subprocess.run(['ls', '-l'], stdout=subprocess.PIPE)
print(result.stdout.decode('utf-8')) 

http://www.kler.cn/a/381246.html

相关文章:

  • ES管理工具Cerebro 0.8.5 Windows版本安装及启动
  • Git代码托管(三)可视化工具操作(1)
  • ffmpeg:视频字幕嵌入(GPU加速)
  • 解决使用Golang的email库发送qq邮件报错short response,错误类型为textproto.ProtocolError
  • js中怎么把excel和pdf文件转换成图片打包下载
  • 盘点 2024 十大免费/开源 WAF
  • Linux下复制粘贴快捷键
  • neo4j浅析
  • [Linux] 进程控制之创建和终止
  • 【SQL50】day 1
  • Linux——Linux基础指令
  • 在 Spring Boot 中使用分布式事务时,如何处理不同数据源之间的事务一致性问题?
  • Java实战项目-基于SpringBoot的新能源汽车个性化推荐系统
  • Linux 经典面试八股文
  • ICT网络赛道WLAN考点知识总结1
  • 多模态大模型微调实践!PAI+LLaMA Factory搭建AI导游
  • 无人机的就业前景怎么样?
  • 基于Multisim光控夜灯LED电路(含仿真和报告)
  • 大数据-207 数据挖掘 机器学习理论 - 多重共线性 矩阵满秩 线性回归算法
  • 【JavaEE初阶 — 多线程】线程安全问题 & synchronized
  • Imperva 数据库与安全解决方案
  • SE-ResUNet论文学习笔记
  • 机器视觉:轮廓匹配算法原理
  • dpdk mempool驱动开发
  • Django学习-项目部署
  • 在Swift开发中简化应用程序发布与权限管理的解决方案——SparkleEasy