# 1. 文件a.txt內容:每一行內容分別為商品名字,價錢,個數,求出本次購物花費的總錢數
# apple 10 3
# tesla 100000 1
# mac 3000 2
# lenovo 30000 3
# chicken 10 3
#
# 2. 修改文件內容,把文件中的alex都替換成SB
# with open('a.txt',mode='r',encoding='utf-8') as f:
# lines=f.readlines()
# sum=0
# for line in lines:
# l = line.replace('\n','')
# k = l.split(' ')
# sum=sum + int(k[1])*int(k[2])
# print(sum)
# import os
# with open('e.txt','r',encoding='utf-8') as read_f,\
# open('.e.txt','w',encoding='utf-8') as write_f:
# for line in read_f:
# line=line.replace('alex','sb')
# write_f.write(line)
# os.remove('e.txt')
# os.rename('.e.txt','e.txt')
# 練習,利用b模式,編寫一個cp工具,要求如下:
#
# 1. 既可以拷貝文本又可以拷貝視頻,圖片等文件
#
# 2. 用戶一旦參數錯誤,打印命令的正確使用方法,如usage: cp source_file target_file
#
# 提示:可以用import sys,然后用sys.argv獲取腳本后面跟的參數
# # cp source_file dst_file
# import sys
# #Sys.argv[]是用來獲取命令行參數的,sys.argv[0]表示代碼本身文件路徑,所以參數從1開始
# sfile=sys.argv[1]#源文件
# dfile=sys.argv[2]#目標文件
#
# with open(sfile,'rb') as read_f,open(dfile,'wb') as write_f:
# data=read_f.read()
# write_f.write(data)
# 1、寫函數,,用戶傳入修改的文件名,與要修改的內容,執行函數,完成批了修改操作
# def modify_file(filename,old,new):
# import os
# with open(filename,'r',encoding='utf-8') as read_f,\
# open('.bak.swap','w',encoding='utf-8') as write_f:
# for line in read_f:
# if old in line:
# line=line.replace(old,new)
# write_f.write(line)
# os.remove(filename)
# os.rename('.bak.swap',filename)
#
# modify_file('/Users/jieli/PycharmProjects/爬蟲/a.txt','alex','SB')
# 2、寫函數,計算傳入字符串中【數字】、【字母】、【空格] 以及 【其他】的個數
# def check_str(msg):
# res={
# 'num':0,
# 'string':0,
# 'space':0,
# 'other':0,
# }
# for s in msg:
# if s.isdigit():
# res['num']+=1
# elif s.isalpha():
# res['string']+=1
# elif s.isspace():
# res['space']+=1
# else:
# res['other']+=1
# return res
#
# res=check_str('hello name:aSB passowrd:alex3714')
# print(res)
# 3、寫函數,判斷用戶傳入的對象(字符串、列表、元組)長度是否大于5。
# def file_len(file):
# if len(file)>5:
#
# return 1
# else:
# return 0
# print(file_len([1,2,3,4]))
# 4、寫函數,檢查傳入列表的長度,如果大于2,那么僅保留前兩個長度的內容,并將新內容返回給調用者。
# def func1(seq):
# if len(seq) > 2:
# seq=seq[0:2]
# return seq
# print(func1([1,2,3,4]))
# 5、寫函數,檢查獲取傳入列表或元組對象的所有奇數位索引對應的元素,并將其作為新列表返回給調用者。
# def func2(seq):
# return seq[::2]
# print(func2([1,2,3,4,5,6,7]))
# 6、寫函數,檢查字典的每一個value的長度,如果大于2,那么僅保留前兩個長度的內容,并將新內容返回給調用者。
# dic = {"k1": "v1v1", "k2": [11,22,33,44]}
# PS:字典中的value只能是字符串或列表
# def func3(dic):
# d={}
# for k,v in dic.items():
# if len(v) > 2:
# d[k]=v[0:2]
# return d
# print(func3({'k1':'abcdef','k2':[1,2,3,4],'k3':('a','b','c')}))
?