
我的常见:附件上传测试...
bash
import os
import csv
import json
# 引入第三方库 (需先 pip install)
try:
from docx import Document
from openpyxl import Workbook
from reportlab.pdfgen import canvas
from PIL import Image, ImageDraw, ImageFont
except ImportError as e:
print("❌ 缺少依赖库,请先运行: pip install python-docx openpyxl reportlab Pillow")
exit()
# 配置输出目录
OUTPUT_DIR = "test_data"
def init_dir():
if not os.path.exists(OUTPUT_DIR):
os.makedirs(OUTPUT_DIR)
print(f"📁 已创建目录: {OUTPUT_DIR}")
def gen_txt():
"""生成 TXT 文件"""
path = os.path.join(OUTPUT_DIR, "test.txt")
with open(path, "w", encoding="utf-8") as f:
f.write("这是一个测试文本文件。\n用于测试转换 OFD 功能。\nHello World!")
print(f"✅ 生成 TXT: {path}")
def gen_csv():
"""生成 CSV 文件"""
path = os.path.join(OUTPUT_DIR, "test.csv")
with open(path, "w", encoding="utf-8", newline='') as f:
writer = csv.writer(f)
writer.writerow(["ID", "Name", "Role"])
writer.writerow(["1001", "Chen Fei", "Admin"])
writer.writerow(["1002", "Zhang San", "User"])
print(f"✅ 生成 CSV: {path}")
def gen_json():
"""生成 JSON 文件"""
path = os.path.join(OUTPUT_DIR, "test.json")
data = {
"project": "OFD Converter",
"version": 1.0,
"supported_formats": ["doc", "pdf", "txt"]
}
with open(path, "w", encoding="utf-8") as f:
json.dump(data, f, indent=4)
print(f"✅ 生成 JSON: {path}")
def gen_xml():
"""生成 XML 文件"""
path = os.path.join(OUTPUT_DIR, "test.xml")
content = """<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Developer</to>
<from>Admin</from>
<heading>Test OFD</heading>
<body>Don't forget to handle this file!</body>
</note>"""
with open(path, "w", encoding="utf-8") as f:
f.write(content)
print(f"✅ 生成 XML: {path}")
def gen_html():
"""生成 HTML 文件"""
path = os.path.join(OUTPUT_DIR, "test.html")
content = """<!DOCTYPE html>
<html>
<head><title>Test Page</title></head>
<body>
<h1>Hello OFD</h1>
<p>This is a test html page.</p>
</body>
</html>"""
with open(path, "w", encoding="utf-8") as f:
f.write(content)
print(f"✅ 生成 HTML: {path}")
def gen_docx():
"""生成 Word (.docx) 文件"""
path = os.path.join(OUTPUT_DIR, "test.docx")
doc = Document()
doc.add_heading('OFD 测试文档', 0)
doc.add_paragraph('这是一个由 Python 自动生成的 Word 文档。')
doc.add_paragraph('用于验证 Spire.Doc 转 OFD 的效果。')
doc.save(path)
print(f"✅ 生成 DOCX: {path}")
def gen_xlsx():
"""生成 Excel (.xlsx) 文件"""
path = os.path.join(OUTPUT_DIR, "test.xlsx")
wb = Workbook()
ws = wb.active
ws.title = "测试数据"
# 写入表头
ws['A1'] = "文件名"
ws['B1'] = "格式"
ws['C1'] = "状态"
# 写入数据
ws.append(["test.docx", "Word", "Ready"])
ws.append(["test.pdf", "PDF", "Ready"])
wb.save(path)
print(f"✅ 生成 XLSX: {path}")
def gen_pdf():
"""生成 PDF 文件"""
path = os.path.join(OUTPUT_DIR, "test.pdf")
c = canvas.Canvas(path)
c.drawString(100, 800, "Hello OFD Converter!")
c.drawString(100, 780, "This is a standard PDF document generated by Python.")
c.drawString(100, 760, "Format: A4")
c.save()
print(f"✅ 生成 PDF: {path}")
def gen_image(fmt="png"):
"""生成图片 (jpg/png)"""
path = os.path.join(OUTPUT_DIR, f"test.{fmt}")
# 创建一个 400x200 的白色背景图片
img = Image.new('RGB', (400, 200), color=(73, 109, 137))
d = ImageDraw.Draw(img)
# 写入简单的文字 (默认字体)
d.text((20, 80), f"Test Image ({fmt.upper()})", fill=(255, 255, 255))
img.save(path)
print(f"✅ 生成 {fmt.upper()}: {path}")
if __name__ == "__main__":
print("🚀 开始生成测试文件...")
init_dir()
# 办公文档
gen_docx()
gen_xlsx()
gen_pdf()
# 文本数据
gen_txt()
gen_csv()
gen_json()
gen_xml()
gen_html()
# 图片
gen_image("png")
gen_image("jpg")
print("\n🎉 所有文件生成完毕!请查看 test_data 文件夹。")