41 lines
1.4 KiB
Python
41 lines
1.4 KiB
Python
|
import re
|
|||
|
import csv
|
|||
|
|
|||
|
def convert_temp_table(input_file, output_file):
|
|||
|
# 读取输入文件
|
|||
|
with open(input_file, 'r', encoding='utf-8') as f:
|
|||
|
lines = f.readlines()
|
|||
|
|
|||
|
# 准备三个列的数据存储
|
|||
|
col1 = []
|
|||
|
col2 = []
|
|||
|
col3 = []
|
|||
|
|
|||
|
# 处理数据行(跳过标题行和最后一行元数据)
|
|||
|
for line in lines[1:-1]:
|
|||
|
# 使用正则表达式提取所有数字(包含小数)
|
|||
|
numbers = re.findall(r'[-+]?\d*\.\d+|\d+', line)
|
|||
|
|
|||
|
# 每行应有6个数字(3组温度+电阻)
|
|||
|
if len(numbers) == 6:
|
|||
|
# 分别添加到对应列
|
|||
|
col1.append((float(numbers[0]), float(numbers[1]))) # 第一列
|
|||
|
col2.append((float(numbers[2]), float(numbers[3]))) # 第二列
|
|||
|
col3.append((float(numbers[4]), float(numbers[5]))) # 第三列
|
|||
|
|
|||
|
# 合并三列数据(先第一列,然后第二列,最后第三列)
|
|||
|
data = col1 + col2 + col3
|
|||
|
|
|||
|
# 写入CSV文件
|
|||
|
with open(output_file, 'w', newline='', encoding='utf-8') as f:
|
|||
|
writer = csv.writer(f)
|
|||
|
writer.writerow(['Temperature (℃)', 'Resistance (KΩ)']) # 写入表头
|
|||
|
writer.writerows(data) # 写入所有数据
|
|||
|
return data
|
|||
|
|
|||
|
if __name__ == "__main__":
|
|||
|
input_file = "温度对照表.txt"
|
|||
|
output_file = "温度对照表.csv"
|
|||
|
data = convert_temp_table(input_file, output_file)
|
|||
|
print(f"成功转换 {len(data)} 条数据到 {output_file}")
|