usvcontrol/SelfBuiltModul/func.py

38 lines
1.7 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import math
def degrees_to_radians(degrees):
"""degrees go to radians"""
return degrees / 180 * math.pi
def radians_to_degrees(radians):
"""radians go to degrees"""
return radians * 180 / math.pi
def to_signed_number(number, max_bytes):
"""Converts a binary number to a signed number"""
if number < 2 ** (8 * max_bytes - 1):
return number
else:
return number - 2 ** (8 * max_bytes)
def pretty_xml(element, indent, newline, level=0): # elemnt为传进来的Elment类参数indent用于缩进newline用于换行
"""为ElementTree处理的XML添加缩进和换行"""
if element: # 判断element是否有子元素
if (element.text is None) or element.text.isspace(): # 如果element的text没有内容
element.text = newline + indent * (level + 1)
else:
element.text = newline + indent * (level + 1) + element.text.strip() + newline + indent * (level + 1)
# else: # 此处两行如果把注释去掉Element的text也会另起一行
# element.text = newline + indent * (level + 1) + element.text.strip() + newline + indent * level
temp = list(element) # 将element转成list
for subelement in temp:
if temp.index(subelement) < (len(temp) - 1): # 如果不是list的最后一个元素说明下一个行是同级别元素的起始缩进应一致
subelement.tail = newline + indent * (level + 1)
else: # 如果是list的最后一个元素 说明下一行是母元素的结束,缩进应该少一个
subelement.tail = newline + indent * level
pretty_xml(subelement, indent, newline, level=level + 1) # 对子元素进行递归操作