一、参考文章:
参考xml读取数据 四种格式读取
二、python
读取txt、json、csv、xml
四种文件,并将读出的数据转化成字典
def importCamOrbit ( self, file_path, file_type) :
dic= { }
if file_type== "Text files (*.txt)" :
file = open ( file_path, 'r' )
setting_dic= [ ]
for line in file . readlines( ) :
line = line. strip( '\n' )
setting = line. split( ':' )
setting_dic. append( setting)
dic = dict ( setting_dic)
print ( dic)
elif file_type== "XML files (*.xml)" :
file = parse( file_path)
ele = file . documentElement
settings = ele. getElementsByTagName( "setting" ) [ 0 ]
keys = [ "半长轴" , "偏心率" , "真近点角" , "倾角" , "升交点赤经" , "近轴点时间" , "近距面" , "远距面" , "视场角" , "x" , "y" , "z" ]
values = [ settings. getElementsByTagName( 'a' ) [ 0 ] . childNodes[ 0 ] . data,
settings. getElementsByTagName( "e" ) [ 0 ] . childNodes[ 0 ] . data,
settings. getElementsByTagName( "w" ) [ 0 ] . childNodes[ 0 ] . data,
settings. getElementsByTagName( "tilt" ) [ 0 ] . childNodes[ 0 ] . data,
settings. getElementsByTagName( "omega" ) [ 0 ] . childNodes[ 0 ] . data,
settings. getElementsByTagName( "tp" ) [ 0 ] . childNodes[ 0 ] . data,
settings. getElementsByTagName( "near" ) [ 0 ] . childNodes[ 0 ] . data,
settings. getElementsByTagName( "far" ) [ 0 ] . childNodes[ 0 ] . data,
settings. getElementsByTagName( "alp" ) [ 0 ] . childNodes[ 0 ] . data,
settings. getElementsByTagName( "view_x" ) [ 0 ] . childNodes[ 0 ] . data,
settings. getElementsByTagName( "view_y" ) [ 0 ] . childNodes[ 0 ] . data,
settings. getElementsByTagName( "view_z" ) [ 0 ] . childNodes[ 0 ] . data]
dic = dict ( zip ( keys, values) )
print ( dic)
elif file_type== "JSON files (*.json)" :
file = open ( file_path, 'r' , encoding= 'UTF-8' )
dic = json. load( file )
print ( dic)
elif file_type== "CSV files (*.csv)" :
file = open ( file_path, 'r' , encoding= 'UTF-8' )
reader = csv. reader( file )
fieldnames = next ( reader)
csv_reader = csv. DictReader( file , fieldnames= fieldnames)
for row in csv_reader:
dic = { }
for k, v in row. items( ) :
dic[ k] = v
print ( dic)
return dic
三、数据
1. txt
数据:
半长轴:50000.1690
偏心率:0.0000
真近点角:0.0000
倾角:0.00000
升交点赤经:0.00000
近轴点时间:90.0000
近距面:0.1000
远距面:300000.0000
视场角:22.1182
x:0.000
y:0.000
z:0.000
2. xml
数据
<?xml version='1.0' encoding='utf-8' ?>
< P_target>
< setting>
< a> 50000.1690</ a>
< e> 0.0000</ e>
< w> 0.0000</ w>
< tilt> 0.00000</ tilt>
< omega> 0.00000</ omega>
< tp> 90.0000</ tp>
< near> 0.1000</ near>
< far> 300000.0000</ far>
< alp> 22.1182</ alp>
< view_x> 0.000</ view_x>
< view_y> 0.000</ view_y>
< view_z> 0.000</ view_z>
</ setting>
</ P_target>
3. json
数据
{
"半长轴":50000.1690,
"偏心率":0.0000,
"真近点角":0.0000,
"倾角":0.00000,
"升交点赤经":0.00000,
"近轴点时间":90.0000,
"近距面":0.1000,
"远距面":300000.0000,
"视场角":22.1182,
"x":0.000,
"y":0.000,
"z":0.000
}
4. csv
数据
"半长轴","偏心率","真近点角","倾角","升交点赤经","近轴点时间","近距面","远距面","视场角","x","y","z"
50000.1690,0.0000,0.0000,0.00000,0.00000,90.0000,0.1000,300000.0000,22.1182,0.000,0.000,0.000