Python根据坐标半径生成测试点数据

一、代码

# -*- coding: utf-8 -*-
import csv
import random
import math
import datetime
from pathlib import Path
from faker import Faker

faker_data = Faker(locale="zh_CN")

def gen_data(center_x=103.827703, center_y=36.064076, radius=0.3, num_points=10, out_dir="."):
    ts = datetime.datetime.now().strftime("%H%M%S")
    out_path = Path(out_dir) / f"litdata_{ts}.csv"

    rows = []
    for _ in range(num_points):
        angle = random.uniform(0, 2 * math.pi)
        distance = random.uniform(0, radius)
        x = center_x + distance * math.cos(angle)
        y = center_y + distance * math.sin(angle)
        rows.append([x, y, faker_data.address(), faker_data.company(), "Lit"])

    try:
        out_path.parent.mkdir(parents=True, exist_ok=True)
        with out_path.open("w", newline="", encoding="utf-8-sig") as f:
            writer = csv.writer(f)
            writer.writerow(["x", "y", "address", "company", "tag"])
            writer.writerows(rows)
        print(f"导出成功: {out_path}")
    except Exception as e:
        print(f"导出CSV失败: {e}")

if __name__ == "__main__":
    gen_data()

 

二、执行结果

 

posted @ 2024-03-07 11:30  莲(LIT)  阅读(66)  评论(0)    收藏  举报