python檔案操作及資料型別操作練習
撰寫如下程式 # 有兩行資料,存放在txt檔案里面(手動建立檔案,并添加如下資料): url:/futureloan/mvc/api/member/register@mobile:18866668888@pwd:123456 url:/futureloan/mvc/api/member/recharge@mobile:18866668888@amount:1000
請利用上課所學知識,把txt里面的兩行內容,取出然后回傳如下格式的資料:(可定義函式) [{‘url’:’/futureloan/mvc/api/member/register’,‘mobile’:‘18866668888’,‘pwd’:‘123456’}, {‘url’:’/futureloan/mvc/api/member/recharge’,‘mobile’:‘18866668888’,‘amount’:‘1000’}]
實作如下:
def get_data():
# 先寫入檔案內容
with open('test.txt', 'w+', encoding='utf-8') as file:
file.writelines(['url:/futureloan/mvc/api/member/register@mobile:18866668888@pwd:123456\n',
'url:/futureloan/mvc/api/member/recharge@mobile:18866668888@amount:1000'])
# 讀取內容
with open('test.txt', 'r+', encoding='utf-8') as fs:
list1 = fs.readlines()
"# print(list1)"
list2 = [] # 定義一個空串列 用于存放最后的資料
for i in range(0, len(list1)):
dict1 = {} # 定義一個空字典 用來存放字典格式的資料
""
# 去掉\n 再通過@分割 得到兩個串列
['url:/futureloan/mvc/api/member/register', 'mobile:18866668888', 'pwd:123456']
['url:/futureloan/mvc/api/member/recharge', 'mobile:18866668888', 'amount:1000']
""
j = list1[i].strip('\n').split('@')
"print(j)"
for k in j:
""
得到 ['url', '/futureloan/mvc/api/member/recharge']
['mobile', '18866668888']
['amount', '1000']
""
m = k.split(':') # 通過:分割 得到key value值
"# print(m)"
dict1[m[0]] = m[1] # 將key value 組成鍵值對
list2.append(dict1)
print(list2)
get_data()
執行結果圖如下:

稍作改進,使代碼更清晰:
def get_dict(s):
dict_info = {}
list_info = s.split('@') # 通過@分割
# print('@分割后為:', list_info)
for item in list_info:
temp = item.split(':') # 通過:分割
# print(':分割后為:', temp)
dict_info[temp[0]] = temp[1]
# print(dict_info)
return dict_info # 回傳字典
list_value = []
with open('test3.txt', 'r', encoding='utf-8') as fs:
for line in fs.readlines(): # 遍歷檔案
# print(line)
line_info = line.strip() # 去掉換行
# print(line_info)
dict1 = get_dict(line_info) # 呼叫函式 得到串列中的字典值
list_value.append(dict1) # 將字典追加到串列中
print(list_value)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/60855.html
標籤:其他
