我有这个txt文件:
#internal radius of the stator
r_int_stat=0.34
#axial coordinate of the beginning of the rotor
rotor_in=0.1289
#axial coordinate of the end of the rotor
rotor_end=0.173
#internal radius of the rotor
r_int_rot=0.32
#axial coordinate of the end of the domain
end=0.306
#external radius
r_ext=0.4
我想创建一个Python脚本来回忆这个txt文件并使用那些变量。我有这个Python代码:
file=open("testfile.dat","w")
file.write("Header\n")
file.write("\n")
if curve==1:
file.write("XYZ polyline\n")
file.write("2\n")
#the z coordinate remains always zero because I have an axysimmetric mesh
file.write('0 '+str(r_int_stat)+' 0\n')
file.write(str(rotor_in)+' '+str(r_int_stat)+' 0\n')
file.write('\n')
file.write('XYZ polyline\n')
file.write('2\n')
file.write(str(rotor_in)+' '+str(r_int_stat)+' 0\n')
file.write(str(rotor_end)+' '+str(r_int_rot)+' 0\n')
file.write('\n')
file.write('XYZ polyline\n')
file.write('2\n')
file.write(str(rotor_end)+' '+str(r_int_rot)+' 0\n')
file.write(str(end)+' '+str(r_int_rot)+' 0\n')
file.write('\n')
file.write('XYZ polyline\n')
file.write('2\n')
file.write(str(end)+' '+str(r_int_rot)+' 0\n')
file.write(str(end)+' '+str(r_ext)+' 0\n')
file.write('\n')
file.write('XYZ polyline\n')
file.write('2\n')
file.write(str(end)+' '+str(r_ext)+' 0\n')
file.write('0 '+str(r_ext)+' 0\n')
file.write('\n')
file.write('XYZ polyline\n')
file.write('2\n')
file.write('0 '+str(r_ext)+' 0\n')
file.write('0 '+str(r_int_stat)+' 0\n')
else:
file.write("XYZ cspline\n")
file.write("5\n")
file.close()
我希望这个Python代码从txt文件中获取变量的值,因为我需要修改这些变量,因此从外部txt文件中更容易。
感谢您的帮助!
答案 0 :(得分:0)
根据Dietsche先生的建议,使用Configparser
。 (如果他回答请告诉我,我会删除这个答案。)
首先通过在开头添加一行来更改该文件。
[parameters]
#internal radius of the stator
r_int_stat=0.34
#axial coordinate of the beginning of the rotor
rotor_in=0.1289
#axial coordinate of the end of the rotor
rotor_end=0.173
#internal radius of the rotor
r_int_rot=0.32
#axial coordinate of the end of the domain
end=0.306
#external radius
r_ext=0.4
以下Python代码建议您如何提取其内容。
打开配置文件,询问它的部分是什么(在你的情况下只有一部分),获取该部分内容的字典,并显示字典。
>>> import configparser
>>> config = configparser.ConfigParser()
>>> config.read('testfile.dat')
['testfile.dat']
>>> config.sections()
['parameters']
>>> d = config['parameters']
>>> for key, value in d.items():
... key, value
...
('r_int_stat', '0.34')
('rotor_in', '0.1289')
('rotor_end', '0.173')
('r_int_rot', '0.32')
('end', '0.306')
('r_ext', '0.4')