1. 程式人生 > >文件操作-作業

文件操作-作業

對象 匹配 line ken readline 年齡 != 價格 類型

作業1,文件a.txt內容:每一行內容分別為商品名字,價格,個數

apple 10 3

tesla 100000 1

mac 3000 2

lenovo 30000 3

chicken 10 3

通過代碼,將其構建成這種數據類型:

[{‘name‘:‘apple‘,‘price‘:10,‘amount‘:3},{‘name‘:‘tesla‘,‘price‘:1000000,‘amount‘:1}......] 並計算出總價錢。

‘‘‘
實現方法:
循環句柄,控制循環次數,對item進行切割,形成列表,
在進行for循環添加字典
‘‘‘
with open(a.txt, r, encoding=utf-8) as f:
    li 
= [] for item in f: # item = apple 10 3 dic = {name: None, price: None, amount: None} lst = item.split() # lst = [‘apple‘, ‘10‘, ‘3‘] dic[name] = lst[0] dic[price] = lst[1] dic[amount] = lst[2] li.append(dic) print(li)

作業2,文件a1.txt內容:

name:apple price:10 amount:3 year:2012
name:tesla price:100000 amount:1 year:2013

......

通過代碼,將其構建成這種數據類型:

[{‘name‘: ‘apple‘, ‘price‘: ‘10‘, ‘amount‘: ‘3‘}, {‘name‘: ‘tesla‘, ‘price‘: ‘100000‘, ‘amount‘: ‘1‘}]

with open(e.txt, r, encoding=utf-8) as f:
    lst = []
    sum = 0
    for item in f:
        dic 
= {} lst1 = item.split( ) # [‘name:apple‘, ‘price:10‘, ‘amount:3‘, ‘year:2012\n‘] for el in lst1: # item = ‘name:apple‘ lst2 = el.split(:) # lst2 = [name, apple] if lst2[0] == year: continue dic[lst2[0]] = lst2[1].strip() lst.append(dic) sum += int(dic[price])*int(dic[amount]) print(lst) print(sum)

作業3,文件a.1txt內容形式:

序號 部門 人數 平均年齡 備註
1 python 30 26 單身狗
2 Linux 26 30 沒對象
3 運營部 20 24 女生多

通過代碼,將其構建成這種數據類型:

[{‘序號‘:‘1‘,‘部門‘:Python,‘人數‘:30,‘平均年齡‘:26,‘備註‘:‘單身狗‘},
......]

with open(d.txt, r, encoding=utf-8) as f:
    lst = f.readlines()
    lst1 = []  # 最後打印的列表
    new = []  # key的列表
    for item in lst[0].split():  # 將第一行的名稱添加到new列表裏面,之後for循環new列表元素組成字典的key
        if item !=  :
            new.append(item)
    # print(new)  # [‘序號‘, ‘部門‘, ‘人數‘, ‘平均年齡‘, ‘備註‘]
    # print(lst[1:])
    index = 0   # 實現列表長度的循環
    for item in lst[1:]:
        # n = []
        dic = {}  # 循環定義字典,添加到列表中
        for el in item.split( ):  # el = [‘1‘, ...]
            if el != ‘‘:  # n = [‘1‘, ‘python‘, ‘30‘, ‘26‘, ‘單身狗\n‘]
                # n.append(el)
                dic[new[index]] = el.strip()  # 匹配索引位置以鍵值對的形式添加到列表中
                index += 1
                if index == len(new):
                    index = 0
        lst1.append(dic)
    print(lst1)

文件操作-作業