python 放入必备的几个代码示例
·
python 放入必备的几个代码示例
- 文件批量重命名工具
import os
def batch_rename_files(folder_path, prefix):
"""
批量重命名指定文件夹中的所有文件
:param folder_path: 文件夹路径
:param prefix: 新文件名前缀
"""
if not os.path.isdir(folder_path):
print(f"错误: {folder_path} 不是一个有效的文件夹")
return
file_list = os.listdir(folder_path)
count = 1
for file_name in file_list:
old_path = os.path.join(folder_path, file_name)
# 跳过文件夹,只处理文件
if os.path.isdir(old_path):
continue
# 获取文件扩展名
file_ext = os.path.splitext(file_name)[1]
# 构建新文件名
new_file_name = f"{prefix}_{count:03d}{file_ext}"
new_path = os.path.join(folder_path, new_file_name)
# 重命名文件
os.rename(old_path, new_path)
print(f"重命名: {file_name} -> {new_file_name}")
count += 1
# 使用示例
if __name__ == "__main__":
batch_rename_files("/path/to/your/files", "file")
- 简单的文本内容搜索工具
import os
def search_text_in_files(folder_path, search_text, case_sensitive=False):
"""
在指定文件夹的所有文件中搜索文本
:param folder_path: 文件夹路径
:param search_text: 要搜索的文本
:param case_sensitive: 是否区分大小写
"""
if not os.path.isdir(folder_path):
print(f"错误: {folder_path} 不是一个有效的文件夹")
return
# 遍历文件夹中的所有文件
for root, dirs, files in os.walk(folder_path):
for file in files:
file_path = os.path.join(root, file)
# 尝试打开并读取文件
try:
with open(file_path, 'r', encoding='utf-8') as f:
content = f.read()
# 根据是否区分大小写进行搜索
if case_sensitive:
if search_text in content:
print(f"在文件中找到: {file_path}")
else:
if search_text.lower() in content.lower():
print(f"在文件中找到: {file_path}")
except UnicodeDecodeError:
# 跳过二进制文件
continue
except Exception as e:
print(f"读取文件 {file_path} 时出错: {e}")
# 使用示例
if __name__ == "__main__":
search_text_in_files("/path/to/your/files", "example", case_sensitive=False)
- 简易的HTTP服务器
import http.server
import socketserver
import argparse
def start_server(port=8000, directory='.'):
"""
启动一个简单的HTTP服务器
:param port: 端口号
:param directory: 要共享的目录
"""
Handler = http.server.SimpleHTTPRequestHandler
Handler.directory = directory
with socketserver.TCPServer(("", port), Handler) as httpd:
print(f"服务器启动在 http://localhost:{port}")
print(f"共享目录: {os.path.abspath(directory)}")
try:
httpd.serve_forever()
except KeyboardInterrupt:
print("\n服务器已停止")
# 使用示例
if __name__ == "__main__":
parser = argparse.ArgumentParser(description='启动简易HTTP服务器')
parser.add_argument('-p', '--port', type=int, default=8000, help='端口号')
parser.add_argument('-d', '--dir', type=str, default='.', help='要共享的目录')
args = parser.parse_args()
start_server(args.port, args.dir)
import os
import shutil
import datetime
def backup_files(source, destination):
"""
备份文件或目录到指定位置
:param source: 源文件或目录路径
:param destination: 备份目标路径
"""
# 检查源是否存在
if not os.path.exists(source):
print(f"错误: 源 {source} 不存在")
return
# 获取当前日期时间作为备份文件名的一部分
timestamp = datetime.datetime.now().strftime("%Y%m%d_%H%M%S")
# 构建备份文件名
source_name = os.path.basename(source)
backup_name = f"{source_name}_backup_{timestamp}"
backup_path = os.path.join(destination, backup_name)
try:
# 如果是目录,使用copytree
if os.path.isdir(source):
shutil.copytree(source, backup_path)
print(f"目录备份成功: {backup_path}")
# 如果是文件,使用copy2保留元数据
else:
shutil.copy2(source, backup_path)
print(f"文件备份成功: {backup_path}")
except Exception as e:
print(f"备份失败: {e}")
# 使用示例
if __name__ == "__main__":
# 要备份的文件或目录列表
sources_to_backup = [
"/path/to/important/file.txt",
"/path/to/important/folder"
]
# 备份存储位置
backup_destination = "/path/to/backup/location"
# 确保备份目录存在
if not os.path.exists(backup_destination):
os.makedirs(backup_destination)
# 执行备份
for source in sources_to_backup:
backup_files(source, backup_destination)
更多推荐


所有评论(0)