python字典文件,python-文件转字典,字典转文件
學習隨筆:
文件轉字典,字典轉文件
思路:
文件轉字典:
1.打開文件,創建一個空字典
2.讀取文件??? ==按照需求讀取文件,如以行讀取文件,每次讀取一行
3.獲取讀取的有效數據?? ==做個標記,以標記分割讀取的字符串,返回一個列表
4.將獲取的有效數據列表按照需求一一添加到字典中,同時記錄添加的順序
5.文件讀取完成后關閉文件
字典轉文件:
1.打開文件
2.將字典中的數據按照之前添加的順去取出來
3.在將取出來的數據格式化的寫入文件中
4.將字典中的全部內容寫入文件后 關閉文件
具體代碼:
fr = open('ATconmand.txt', 'r')
'''假設ATconmand.txt文件內容如下
AT:300:OK:OK
ATI:300:OK:QUECTEL
AT+EGMR:300:OK:EC20
'''
dic={} #字典用來儲存文件內容的
keys = [] # 用來存儲讀取的順序
lines=0
for line in fr:
lines+=1
v = line.strip().split(':') #已行讀取文件內容,每行已“:”分割文件內容生成列表 例如:('AT','300','OK','OK')
dic["AT_COMMAND_%s" %(lines)] =(v[0],{'waittime':(v[1],{'Result':(v[2],v[3])})}) #生成字典,例如:{'AT_COMMAND_1': ('AT', {'waittime': ('300', {'Result': ('OK', 'OK')})})}
keys.append(lines) #讀取順序 [1, 2, 3]
fr.close()
print(dic)
# 寫入文件代碼 通過keys的順序寫入
fw = open('wdic.txt', 'w+') #打開要寫入的文件,若不存在改文件則自動創建該文件
print(keys) #讀取順序 [1, 2, 3]
for k in keys:
AT=dic["AT_COMMAND_%s" %(k)][0] #獲取dic{'AT_COMMAND_1':('AT',{})} 字典中的"AT"
waittime=dic["AT_COMMAND_%s" %(k)][1]['waittime'][0] #獲取dic{'AT_COMMAND_1':('AT',{'waittime': ('300',{})})} 字典中的"300"
Result=dic["AT_COMMAND_%s" %(k)][1]['waittime'][1]['Result'][0] #獲取dic{'AT_COMMAND_1': ('AT', {'waittime': ('300', {'Result': ('OK', 'OK')})})} 字典中的第一個'OK'
Result1 = dic["AT_COMMAND_%s" % (k)][1]['waittime'][1]['Result'][1]#獲取dic{'AT_COMMAND_1': ('AT', {'waittime': ('300', {'Result': ('OK', 'OK')})})} 字典中的第二個'OK'
fw.write('''{AT}:{waittime}:{Result}:{Result1}\n'''.format(AT=AT,waittime=waittime,Result=Result,Result1=Result1)) ##數據寫入文件
fw.flush() #刷新文件
print('''{AT}:{waittime}:{Result}:{Result1}\n'''.format(AT=AT,waittime=waittime,Result=Result,Result1=Result1))
fw.close() #關閉文件
'''生成的wdic.txt文件的內容如下
AT:300:OK:OK
ATI:300:OK:QUECTEL
AT+EGMR:300:OK:EC20
'''
View Code
標簽:文件,OK,python,waittime,300,Result,字典
來源: https://www.cnblogs.com/lorenjia/p/11067164.html
總結
以上是生活随笔為你收集整理的python字典文件,python-文件转字典,字典转文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 专业课程设计之客户与服务器程序的同步与通
- 下一篇: python截取字符串函数substr_