我正在学习使用class
in Python
。通常我会写几个function
来运行我的脚本,但最近我正在使用类编写。
对于这个基本问题,我很抱歉,但是什么时候可以限制使用课程?
另一方面,在我的代码中,我编写了这个函数,您可以在其中读取目录中的所有文本文件,并将所有值保存在临时文件中。文本文件为 x、y 和 z 格式。该函数返回临时文件的名称、边界框、原点(左上角)和底部(右下角)。在类中转换这样的函数有用吗?如果是,为什么?如果没有,为什么?
import os
import tempfile
import glob
class LaserException(Exception):
"""Laser exception, indicates a laser-related error."""
pass
sepType = {
"space": ' ',
"tab": '\t',
"comma": ',',
"colon": ':',
"semicolon": ';',
"hyphen": '-',
"dot": '.'
}
def tempfile_merge(path,separator,wildcard= '*.txt'):
file_temp = tempfile.NamedTemporaryFile(delete=False,dir=path)
name = file_temp.name
minx = float('+inf')
maxx = float('-inf')
miny = float('+inf')
maxy = float('-inf')
for file in glob.glob(os.path.join(path,wildcard)):
for line in open(file, "r"):
element = line.split(sepType[separator])
if len(element) < 3:
raise TypeError("not enough arguments: %s has only %s columns" % (inFile_name_suffix,len(element)))
try:
maxx = max(maxx, float(element[0]))
minx = min(minx, float(element[0]))
maxy = max(maxy, float(element[1]))
miny = min(miny, float(element[1]))
except ValueError:
raise LaserException("x,y,z are not float-values")
newelement = " ".join([str(e) for e in element])+ "\n"
file_temp.write(newelement)
file_temp.close()
return(name, ((minx,maxy),(maxx,maxy),(maxx,miny),(minx,miny)),(minx,maxy),(maxx,miny))