便利某个目录下所有的文件,将所有便利到的文件保存到指定文件命中
import os,sys
#参数dir是欲便利的文件,file是保存结果的文件
#自定义函数
def listfileindir(dir,file):
file.write(dir+'\n')
filenum=0
list=os.listdir(dir)
for line in list:
filepath=os.path.join(dir,line)
if os.path.isdir(filepath):
file.write(' '+line+'\\'+'\n')
for li in os.listdir(filepath):
file.write(' '+li+'\n')
filenum=filenum+1
else:
file.write(' '+line+'\n')
filenum=filenum+1
file.write('all the file num is'+str(filenum) )
#注意raw_input的作用是提示用户输入,并返回用户输入结果
dir=raw_input('please input the path:')
myfile=open('list.txt','w')
#调用自定义函数
listfileindir(dir,myfile)
-----------
该函数主要利用了os.path这个包,下面详解一下os.path这个包--------------
os.path主要讲解一下三个部分
[一]基本操作
- basename('文件路径')
去掉目录路径,返回fname文件名
2 | os.path.basename( '/Volumes/1.mp4' ) |
- dirname('文件路径')
去掉文件名,返回目录路径
2 | os.path.dirname( '/Volumes/1.mp4' ) |
- splitdrive('文件路径')
返回(drivername,fpath)元组
2 | os.path.splitdrive( 'Volumes/1.mp4' ) |
- os
.path.split('文件路径') 分割文件名与路径;返回(fpath,fname)元组;如果完全使用目录,它也会将最后一个目录作为文件名分离,且不会判断文件或者目录是否存在
2 | os.path.split( '/Volumes/1.mp4' ) |
3 | os.path.split( '/Volumes/text' ) |
- os.path.splitext(“文件路径”)
分离文件名与扩展名;默认返回(fname,fextension)元组,可做分片操作
2 | fname, fextension = os.path.splitext( '/Volumes/Leopard/Users/Caroline/Desktop/1.mp4' ) |
4 | os.path.splitext( '/Volumes/Leopard/Users/Caroline/Desktop/1.mp4' )[ 1 :] |
- os.path.join('a','b','fname.extension')->'a/b/fname.extension'
将分离的部分组成一个路径名
2 | os.path.join( 'a' , 'b' , '1.mp4' ) |
[二]查询:返回值True,False
- exists() 指定路径(文件或者目录)是否存在
- islink() 指定路径是否存在且为一个符号链接
- ismount() 指定路径是否存在且为一个挂载点 ???
- samefile() 两个路径名是否指向同一个文件
【三】文件信息
- getatime() 返回最近访问时间 (浮点型秒数)
- normpath() 规范path字符串形式 ???
03 | file = '/Volumes/Leopard/Users/Caroline/Desktop/1.mp4' |
07 | time.gmtime(os.path.getmtime( file )) |
没有评论:
发表评论