实用代码示例合集:快速上手常见编程场景
涵盖文件处理、数据转换、网络请求及并发任务的高频编程场景,提供Python与JavaScript可直接运行的代码示例,帮助快速上手常见开发需求。
编程学习与实践往往离不开直观的参考案例。一份组织得当的代码示例,不仅能迅速展示某个功能的具体写法,还能帮助建立清晰的实现思路。以下整理覆盖文件处理、数据转换、网络请求与并发任务等典型场景,用短小精悍的片段辅助快速上手。
高效处理文件与目录
文件读写是多数应用的基础需求。以 Python 为例,逐行读取大文件时,推荐使用上下文管理器与迭代器结合的方式,既能确保资源关闭,又避免一次性加载全部内容。
with open("data.txt", "r", encoding="utf-8") as f:
for line in f:
# 对每一行进行处理
print(line.strip())
如果需要批量处理目录中的特定类型文件,pathlib 模块提供了更现代的路径操作方式。
from pathlib import Path
for csv_file in Path("./records").glob("*.csv"):
with csv_file.open("r") as f:
content = f.read()
# 进一步解析 content
同样的任务在 Node.js 中,可以通过内置的 fs 模块以异步方式实现,避免阻塞事件循环。
const fs = require("fs/promises");
async function readLines(filePath) {
const data = await fs.readFile(filePath, "utf8");
const lines = data.split("\n");
lines.forEach(line => console.log(line));
}
数据格式转换与序列化
JSON 与 CSV 之间的互转是数据管道中的高频操作。下面展示一个简洁的 Python 转换工具:将 CSV 文件读入并输出为结构化的 JSON 数组。
import csv
import json
def csv_to_json(csv_path, json_path):
with open(csv_path, "r") as cf:
reader = csv.DictReader(cf)
rows = list(reader)
with open(json_path, "w") as jf:
json.dump(rows, jf, indent=2, ensure_ascii=False)
csv_to_json("users.csv", "users.json")
在 JavaScript 环境中处理类似场景,可以利用对象解构快速提取所需字段,再通过 JSON.stringify 控制输出格式。
const records = [
{ id: 1, name: "示例", active: true },
{ id: 2, name: "演示", active: false }
];
const filtered = records.map(({ id, name }) => ({ id, name }));
const jsonOutput = JSON.stringify(filtered, null, 2);
console.log(jsonOutput);
发起网络请求与异常处理
现代应用几乎无法脱离 API 调用。Python 的 requests 库以简洁著称,配合超时设置与状态码检查,能让请求代码更健壮。
import requests
def fetch_data(url):
try:
resp = requests.get(url, timeout=5)
resp.raise_for_status()
return resp.json()
except requests.exceptions.Timeout:
print("请求超时,请稍后重试")
return None
except requests.exceptions.RequestException as e:
print(f"请求失败: {e}")
return None
result = fetch_data("https://api.example.com/data")
在浏览器端或 Node.js 中,fetch 已成为标准方案。结合 async/await 与 try/catch 能够清晰表达异步流程。
async function loadProducts() {
try {
const response = await fetch("https://api.example.com/products");
if (!response.ok) {
throw new Error(`HTTP ${response.status}`);
}
const products = await response.json();
console.log(products);
} catch (error) {
console.error("获取产品列表出错:", error.message);
}
}
并发任务执行模式
当需要同时处理多个独立的操作,比如批量下载或数据采集,合理运用并发可以显著缩短总耗时。Python 的 concurrent.futures 提供了线程池与进程池的通用接口。
from concurrent.futures import ThreadPoolExecutor, as_completed
import urllib.request
urls = ["https://example.com/a", "https://example.com/b", "https://example.com/c"]
def download(url):
with urllib.request.urlopen(url, timeout=4) as resp:
return url, resp.status
with ThreadPoolExecutor(max_workers=3) as executor:
future_to_url = {executor.submit(download, url): url for url in urls}
for future in as_completed(future_to_url):
url, status = future.result()
print(f"{url} -> 状态码 {status}")
JavaScript 则原生支持 Promise.all 来并发执行多个异步任务,写法极为紧凑。
const urls = ["/api/users", "/api/orders", "/api/inventory"];
async function fetchAll(basePath) {
const promises = urls.map(path =>
fetch(`${basePath}${path}`).then(res => res.json())
);
const [users, orders, inventory] = await Promise.all(promises);
return { users, orders, inventory };
}
fetchAll("https://service.example.com")
.then(data => console.log("全部数据获取完成:", data))
.catch(err => console.error("并发请求中发生错误:", err));
以上示例覆盖了日常开发中经常接触的四类任务。每一段代码都力求直接可用,同时保留了必要的异常处理与注释边缘。读者可以在理解原意的基础上,灵活调整参数与逻辑,将其嵌入更大的业务模块中。编程能力的提升往往来自反复阅读、改写并运行这样的实例,最终形成自己的代码库与直觉反应。