1. 一个项目完整的框架
project_name/
├── README.md
├── requirements.txt
├── main.py
├── module1.py
├── module2.py
└── data/
├── input/
└── output/
README.md: 一个包含项目信息的文件,例如它的目的,如何使用它,以及任何需要的依赖性。
requirements.txt: 该文件列出了运行该项目所需的所有依赖项。
main.py: 运行项目的主脚本。这个文件可以从其他模块导入函数或类。
module1.py, module2.py: 包含主脚本中使用的函数、类或变量的 Python 模块。
data/: 一个包含项目的输入和输出数据的目录。
data/input/: 一个包含项目的输入数据的目录。
data/output/: 一个包含项目生成的输出数据的目录。
2. 上例子
2.1 定义主脚本中使用的函数、类或变量的 Python 模块。导入几个Python库
import scipy.spatial as sp
import numpy as np
from scipy.spatial import Delaunay
import stl
from stl import mesh
import csv
import matplotlib
#matplotlib.use('Agg')
import matplotlib.pyplot as plt
import matplotlib.cm as cm
import math
import argparse
import time
scipy.spatial: 一个提供空间算法和数据结构的库,如Delaunay triangulation, Voronoi diagram, 和KD-trees。
numpy: 一个用于Python数值计算的库,提供数组和矩阵、线性代数和数学函数。
stl: 一个用于读写STL文件的库,常用于3D打印和计算机辅助设计(CAD)。
csv: 读写CSV文件的库,通常用于存储和交换表格数据。
matplotlib: 一个用于在Python中创建静态、动画和交互式可视化的库。它提供了大量的绘图、图表和图形。
math: 一个内置库,提供数学函数和常量。
argparse: 一个用于解析Python中命令行参数的库。
time: 一个内置库,提供处理时间的函数,如测量已过的时间和暂停执行。
2.2 Matplotlib图形和坐标轴对象
ax = plt.axes()
ax.spines['right'].set_visible(False)
ax.spines['left'].set_visible(False)
ax.spines['top'].set_visible(False)
ax.spines['bottom'].set_visible(F