注意:此为内部小组学习资料,非售卖品,仅供学习参考。
本系列课程:
Python学习小组课程-课程大纲与Python开发环境安装
Python学习小组课程P1-Python基础(1)语法与数组
Python学习小组课程P2-Python基础(2)文件操作
Python学习小组课程P3-Python爬虫(1)HTML与Json解析
Python学习小组课程P4-Python办公(1)Excel保存
Python学习小组课程P5-Python办公(2)Excel读取与Word生成
Python学习小组课程P6-Python办公(3)邮件与钉钉消息通知
相关文件下载:
链接: https://pan.baidu.com/s/18RiXNEul-Jin5ZNNjZDT4Q 提取码: xbhs
知识点:换行符、字符串替换、字符串分割
#字符串换行符
str='抗蓝光、小灯泡\n神仙水、特润100'
print(str)
print('#'*50)
#字符串替换
str=str.replace('\n','、')
print(str)
print('#'*50)
#字符串截取
print(str[4:7])
print('#'*50)
#字符串分割
str_list=str.split('、')
print(str_list)
抗蓝光、小灯泡
神仙水、特润100
##################################################
抗蓝光、小灯泡、神仙水、特润100
##################################################
小灯泡
##################################################
['抗蓝光', '小灯泡', '神仙水', '特润100']
知识点:文件读取、换行符、字符串替换、字符串分割
f=open("P2.1_data/goods_price.txt", "r", encoding='UTF-8')
list=[]
while True:
line = f.readline()
if line:
line=line.replace('\n','') #替换末尾的换行符号
print(line)
list.append(line.split(',')) #逗号分隔
else:
break
f.close()
print(list)
list=sorted(list,key=lambda x:int(x[1]),reverse=True)
print(list)
小灯泡,750
抗蓝光,185
神仙水,580
特润100,420
[['小灯泡', '750'], ['抗蓝光', '185'], ['神仙水', '580'], ['特润100', '420']]
[['小灯泡', '750'], ['神仙水', '580'], ['特润100', '420'], ['抗蓝光', '185']]
知识点:文件读取、min、max、sum、len函数
f=open("P2.2_data/goods_price.txt", "r", encoding='UTF-8')
list=[]
while True:
line = f.readline()
if line:
line=line.replace('\n','') #替换末尾的换行符号
price=int(line.split(',')[1]) #逗号分隔
list.append(price)
else:
break
f.close()
print('最低价:',min(list))
print('最高价:',max(list))
print('平均价:',sum(list)/len(list))
最低价: 740
最高价: 760
平均价: 750.0
知识点:文件读取、字典
a={}
# key value 键值对
a['小明']=5
a['小红']=3
print(a)
a['小明']+=1
print(a)
{'小明': 5, '小红': 3}
{'小明': 6, '小红': 3}
f=open("P2.3_data/goods_price.txt", "r", encoding='UTF-8')
goods={}
while True:
line = f.readline()
if line:
line=line.replace('\n','') #替换末尾的换行符号
goods_name=line.split(',')[0] #逗号分隔
if goods_name not in goods:
goods[goods_name]=1
else:
goods[goods_name]+=1
else:
break
f.close()
print(goods)
goods=sorted(goods.items(),key=lambda x:x[1],reverse=True)
print(goods)
print(goods[0])
{'抗蓝光': 4, '小灯泡': 7, '神仙水': 2, '特润100': 2}
[('小灯泡', 7), ('抗蓝光', 4), ('神仙水', 2), ('特润100', 2)]
('小灯泡', 7)
知识点:目录列举、文件读取
扩展:软件著作权申请中的源码合并功能
import os
path='P2.4_data/'
files=os.listdir(path)
content=''
for file_name in files:
if os.path.isfile(path+file_name) and file_name.endswith('.txt'):
print(f'读取{file_name}...')
with open(path+file_name, "r", encoding='UTF-8') as f:
str=f.read()
content=content+str
print('读取完毕')
out_file=f"{path}生成目录/content.txt"
with open(out_file, "w+", encoding='UTF-8') as f:
print(f'写入{out_file}...')
f.write(content)
print('写入完毕')
读取1.txt...
读取完毕
读取2.txt...
读取完毕
读取3.txt...
读取完毕
写入P2.4_data/生成目录/content.txt...
写入完毕
知识点:目录列举、文件移动、后缀名获取
import os
import shutil
path='P2.5_data/'
files=os.listdir(path)
for file_name in files:
if os.path.isfile(path+file_name):
#获取后缀名
ext=os.path.splitext(file_name)[1].replace('.','')
#目录不存在则创建
if not os.path.exists(path+ext):
os.mkdir(path+ext)
#移动文件
print(path+file_name,'->',path+ext+'/'+file_name)
shutil.move(path+file_name,path+ext+'/'+file_name)
P2.5_data/1.jpg -> P2.5_data/jpg/1.jpg
P2.5_data/1.txt -> P2.5_data/txt/1.txt
P2.5_data/2.avi -> P2.5_data/avi/2.avi
P2.5_data/2.jpg -> P2.5_data/jpg/2.jpg
P2.5_data/2.txt -> P2.5_data/txt/2.txt