# 3.檔案a.txt內容:每一行內容分別為商品名字,價錢,個數。 (20分鐘)
## tesla 100000 1
# mac 3000 2
# lenovo 30000 3
# chicken 10 3
思路:1:將所有的文字拿出來,然後進行提取鍵和值
2:先拿鍵,在拿值
3:開闢新的空間的時候可以用深淺拷貝
4:也可以通過for迴圈跟while搭配來做題
5:核心思想是要抓住鍵值是一一對應的
總結:做題講究死去活來
做題前先把題寫死
然後再往靈活裡面寫
做題也講究拆分
先把題拆成一塊一塊的
然後再經過模擬
把他們加起來
當拿到鍵跟值無法組成字典的時候
將字典的鍵放到乙個列表裡面
迴圈鍵的字典,然後拿到值得列表
通過一一對應,把他們對接起來
方法二
with
open
("home03-1.txt"
,mode=
"r",encoding=
"utf-8"
)as f:
lst = f.readlines(
)#將值全部放到乙個列表中
lst1 =
for i in lst:))
print
(lst1)
lst2 =
for i in
range
(len
(lst1)):
print
(i) dic =
if i ==5:
break
for x in
range
(len
(lst1[i]))
: dic[lst1[0]
[x]]
= lst1[i+1]
[x]# print(lst1[0][x])
# print(lst1[i+1][x])
print
(lst2)
方法二精簡:
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
with
open
("home03-1.txt"
,mode=
"r",encoding=
"utf-8"
)as f:
lst = f.readlines(
)#將值全部放到乙個列表中
lst1 =
lst2 =
for i in lst:
).split())
for i in
range
(len
(lst1)):
dic =
if i ==5:
break
for x in
range
(len
(lst1[i]))
: dic[lst1[0]
[x]]
= lst1[i+1]
[x]print
(lst2)
# 次方法乃是把所有的內容放到乙個列表裡面,然後根據索引進行查詢賦值,跟分開切割有異曲同工之妙
# for i in lst:
# len(i.split())
# for x in range(len(i.split())):
# print(x)
# dic = {}
# if x == 5:
# break
# for j in range(len(x)):
# dic[lst1[0][j]] = lst1[x + 1][j]
# print(lst2)
# 次方法乃是把所有的內容放到乙個列表裡面,然後根據索引進行查詢賦值,跟分開切割有異曲同工之妙
#方法三:
# dict1=dict()
# list2=list()
# for each_key in list1[0].split():
# dict1.setdefault(each_key,none)
# print("獲取到的鍵的值:",dict1)
# for each in list1[1:]: #開始迴圈值
# list3=each.split() #將值變為列表
# print("值變為列表list3:",list3)
# count=0
# for each_key in dict1.keys():
# print("鍵的值為:",each_key)
# if list3[count].isdigit(): #判斷是不是數字,如果是數字,就將他轉為int在新增進去 ->>因為從檔案中拿到的都是字串
# dict1[each_key]=int(list3[count])
# print("有沒有值?:",dict1[each_key])
# else:
# dict1[each_key]=list3[count]
# print("沒有值得時候",dict1[each_key])
# count+=1
# print(dict1)
# print(dict1)
# print(list2)
方法四:
lst =
list()
f =open
("home03-1.txt"
, mode=
"r", encoding=
"utf-8"
)title = f.readline(
).strip(
).split(
)#讀取鍵 直接去除兩邊的空格然後把他變為列表 變為列表就好找值了
print
(title)
for el in f:
dic =
dict()
#每次新增完將他變為新字典,防止公用同乙個記憶體空間
mes = el.strip(
).split(
)#將剩下的行變為列表
print
(mes)
for i in
range
(len
(title)):
#既然是一一對應,那麼這個時候為什麼用標題的長度:用標題的長度是因為值是在一直變化的,每次都需要計算,理論上來說節省了執行速度
dic[title[i]
]= mes[i]
#鍵跟值一一對應
# 新增字典到列表中
print
(lst)
方法五:
key =
for c in con:
if c =='':
continue
for i in f:
if i ==
'序號 部門 人數 平均年齡 備註\n'
:continue
print
(i) lis = i.strip(
).split(
' ')
n =0 dic =
for li in lis:
if li =='':
continue
print
(li)
dic[key[n]
]= li
n +=
1print
(lis1)
方法六:
li =
with
open
('home03-1.txt'
, encoding=
'utf-8'
, mode=
'r')
as f1:
lst= f1.readline(
).strip(
).split(
)#讀取一行並把他們轉為列表:取了鍵
print
(lst)
for i in f1:
#剩下的內容,也就是字典的值
print
(i) lst2 = i.strip(
).split(
)print
(lst2)
dic =
dict
(zip
(lst, lst2)
)print
(li)
操作檔案 修改檔案中的內容
import os geci open a.txt encoding utf 8 new geci open a1.txt w encoding utf 8 for line in geci change line.replace 一 1 new geci.write change geci.clo...
檔案的內容操作
開啟,追加方式 fp fopen demo.txt a rewind fp echo ftell fp 預設在檔案末尾追加 fwrite fp,hello world n 關閉 fclose fp 開啟 fp fopen demo.txt r echo ftell fp fseek fp,4 將指標...
如何轉換任何配置檔案 檔案中的內容
web.config 通過web.release.config 和web.debug.config檔案來實現不同編譯配置下生成不同的配置檔案,以便我們更好的檢視,修改 維護 這樣我們如何像web.config 那樣優雅的處理這種轉換呢?本文中提及的外掛程式就是解決這個問題的 slowcheetah ...