小甲鱼python第30,31讲--python文件系统/模块 笔记及习题答案

1.OS模块:operation system操作系统
os模块使用方法:
这里写图片描述

2.os.path模块:
os.path模块函数使用方法:
这里写图片描述

os.path.basename('e:\\camera12\\a.jpg')
'a.jpg'
os.path.join('C:\\','A','B','C')
'C:\\A\\B\\C'
os.path.split('c:\\camera\\a.jpg')
('c:\\camera', 'a.jpg')
os.path.splitext('a.tif')
('a', '.tif')

3.pickle模块

import pickle
malist=['123','other']
pickle_file=open('mylist.pkl','wb')#写入二进制
pickle.dump(malist,pickle_file)#把列表保存在文件中
读取:
pickle_file=open('mylist.pkl','rb')#读取二进制
malist2=pickle.load(pickle_file)
print(malist2)
['123', 'other']

30讲习题及答案
0.编写一个程序,统计当前目录下每个文件类型的文件数:

import os
import os.path 

count_txt=0
count_tif=0
count_else=0
path1=os.getcwd()#获取当前路径
print(path1)
file_list=os.listdir(path1)#将文件夹中的文件名生成列表
for each in file_list:
  file_tuple=os.path.splitext(each)#将文件名字与格式分开
  if file_tuple[1]=='.txt':
    count_txt+=1
  else:
    if file_tuple[1]=='.tif':
      count_tif+=1
    else:
      count_else+=1

print('txt格式有%d个'%count_txt)
print('tif格式有%d个',count_tif)
print('其他格式有%d个',count_else)

1.编写一个程序,计算当前文件夹下所有文件的大小

import os
import os.path 

path1=os.getcwd()#获取当前路径
file_list=os.listdir(path1)#将文件夹中的文件名生成列表
for each in file_list:
  size=os.path.getsize(each)#getsize(file)获取文件字节
  print(each+'【'+str(size)+'】')

2.编写一个程序,用户输入文件名以及开始搜索的路径,搜索改文件是否存在,如遇到文件夹,则进入文件夹继续搜索,

import os
import os.path 

def search_file(path_name,filename):
  os.chdir(path_name)#修改路径到top路径下

  for each_file in os.listdir(os.curdir):#将top路径下的文件生成列表
    if each_file==filename:#判断是否为目标文件
      print(os.getcwd()+os.sep+each_file)#如果是输出路径
    if os.path.isdir(each_file):#判断该文件是不是文件夹/目录
      search_file(each_file,filename)#进入到该文件夹下
      os.chdir(os.pardir)#若没有则返回上一层菜单


path_name=input('请输入top文件夹:')
filename=input('请输入要搜索的文件名字:')
search_file(path_name,filename)

3.编写一个程序,用户输入开始搜索的路径,查找该路径下所有的视频格式文件(.mp4,.rmvb,.avi的格式即可),并创建一个txt文件存放所有找到的路径。

import os
import os.path 

file1=open('path.txt','a')#创建一个文件保存路径
def search_save(path_name):

  os.chdir(path_name)

  for each_file in os.listdir(os.curdir):#判断一个文件是不是文件夹
    if os.path.isdir(each_file):#如果是文件夹进入然后递归
      search_save(each_file)
      os.chdir(os.pardir)#之后返回上一级目录
    else:
      tuple_file=os.path.splitext(each_file)#分割名字与格式
      if tuple_file[1]=='.mp4'or #如果格式为一下四种tuple_file[1]=='.rmvb'or tuple_file[1]=='.avi':
        #vidio_list.append(os.getcwd()+os.sep+each_file)
        file1.write(os.getcwd()+os.sep+each_file+'\n')#写入txt文件
path_name=input('请输入top文件夹:')
vidio_list=[]
search_save(path_name)
file1.close()
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值