首先是os模块:
要先明确两个表示:‘.’表示的是当前目录,‘..’表示的是上一级目录(如果现在有点乱的话,下面会有具体的使用,请往下看。。)
getcwd():返回当前的工作目录:
import os
os.getcwd()
#输出'C:\\Python'
chdir(path):改变工作目录,参数:需要修改到的工作目录
os.chdir('E:\\python_py')
#当再次查询当前的工作目录的时候,就会返回新的目录
os.getcwd()
#输出'E:\\python_py'
listdir(path = '.'):列举指定目录中的所有文件的名字(在这里的path默认值就是'.',就是表示的当前的工作目录,返回值就是当前目录中的所有文件)返回类型是列表的形式
os.listdir()
#下面就是阿波得到的返回值了 ['Fiddler', 'format.py', 'input.txt', 'jieba-0.39', 'output.txt', 'pi.py', 'PyCharm 2017.2.4', '__pycache__']
#(因为上面把工作目录更改为'E:\\python_py'所以在这里'.'表示的就是这个目录喽)
#大家还可以传入path的值,来得到相应目录中的所有文件名了
mkdir(path):创建单层目录(在这里只能创建单层的目录,不可以递归创建目录!!),如果这个目录已经存在的话,就会抛出相应的异常
os.mkdir('test')
#这样我们就在'.'的目录中得到一个新的test文件夹
makedirs(path):这个就是递归创建新的目录咯 ,如果存在的话,也会抛异常
os.makedirs('E:\\ONE\\TWO')
os.makedirs('E:\\ONE\\THREE')
#这样我们就可以在E盘中得到一个ONE目录,然后其中含有两个目录,TWO,THREE
remove(path):删除
文件
#首先我们先从THREE文件夹中新建一个叫test的txt文件(非要用程序的话就是open()函数操作就好)
os.remove('E:\\ONE\\THREE\\test.txt')
#这样我们就删除了一个指定的文件
rmdir(path):
删除单层目录,如果目录中不为空的话,抛出异常
os.rmdir('E:\\ONE\\THREE')
#贼样我们就删除了THREE正样得到一个目录
removedirs(path):
递归删除目录,从子目录开始,依次往上删除,如果遇到一个目录不为空的话,就会抛出异常
os.removedirs('E:\\ONE\\TWO')
#我们就把我们刚开始新建的目录就删除了。。
#不得不感慨,自己作的还要自己解决啊,哈哈^_^
rename(old,new):表示将文件old重新命名为new
os.rename('test.txt','阿波.txt')
#我们只在当前工作目录下进行的操作,当然也可以选择绝对路径进行操作
system(command):表示运行系统的shell命令
os.system(cmd)
os.system('calc')
#分别表示打开cmd和calc(计算器)
walk(top):遍历这个路径下的所有子目录,返回值是由三个tuple类型元素组成的列表,
[(当前目录列表),(子目录列表),(文件列表)],例子(
important):
testwalk = os.walk('E:\\test_walk')
for dirname,subdir,file in testwalk:
print (dirname)
print (subdir)
print (file)
print ('___________________________________')
#输出结果
E:\test_walk
['test_a', 'test_b']
['test_c.txt']
___________________________________
E:\test_walk\test_a
[]
[]
___________________________________
E:\test_walk\test_b
[]
['a.txt', 'b.txt', 'c.txt', 'd.txt']
___________________________________
我们看到第一层输出的是当前目录(
str类型),第二个是输出的是子目录的列表(
list类型),第三个输出的是其中含有的文件列表(
list类型)
下面介绍一些可以跨平台的一些操作:
os.curdir:表示的是当前目录,和上面介绍的 '.' 表示同一个意思
os.pardir:表示上一级目录,和 ‘..’表示同一个意思
os.sep:表示当前系统下的路径分割符,在不同的操作平台上,他所代表的东西也不同,win表示 ‘\\’,Linux表示 '/'(小编阿波的电脑是Windows,所以上面一直在用'\\' )
os.linesep:当前平台使用的行终止符(Win 中表示 ‘\r\n’,Linux中表示 ‘\n’)
os.name:代表自己当前使用的操作系统,(Win中会显示 ‘nt’,Linux中显示 'posix'等,小编想17年寒假换个Linux系统,吼吼)
好了,上面就差不多是os模块中经常用到的一些函数了!
现在我们介绍一下os.path模块:
basename(path):去掉目录路径,
单独返回文件名
import os.path
os.path.basename('E:\\python_py\\input.txt')
#那么就会返回input.txt,这个在实际中应用会很多
dirname(path):去掉文件名,
单独返回路径名
os.path.dirname('E:\\python_py\\input.txt')
#得到的值为'E:\\python_py'
join(path1[,path2[,...]]):表示将path1,path2各部分组成一个路径名
os.path.join('E:','python_py','input.txt')
#输出:'E:python_py\\input.txt'
#我们发现在E后面没有路径分割符,那么我们要注意了,这里我们应该自己添加上
os.path.join('E:\\','python_py','input.txt')
#输出:'E:\\python_py\\input.txt'
split(path):分割文件名与路径,返回元祖类型的参数
os.path.split('E:\\python_py\\input.txt')
#输出:('E:\\python_py', 'input.txt')
splitext(path):分离文件名与扩展名,返回类型也为元祖类型
os.path.splitext('E:\\python_py\\input.txt')
#输出:('E:\\python_py\\input', '.txt')
getsize(file):返回文件的尺寸,单位注意是
字节
os.path.getsize('E:\\python_py\\input.txt')
#输出:172
这里我们一起一起说三个函数,因为这三个函数有些许的类似:
getatime(file),getctime(file),getmtime(file)
分别表示的是文件最近的
访问时间,创建时间,最新的修改时间,返回类型是浮点型的秒数,(就是在讲解time模块中提到的时间戳,如果有点乱的可以在了解这个的时候先去了解一下time模块,有时间再去吧time模块做一下详细的解析吧,总体来说还是十分重要的.......^_^)ef
这里就先不写例子了........懒癌又犯了
下面我们说一些返回值是True和False的函数:
exists(path):判断文件或者目录是否存在......
os.path.exists('E:\\python_py\\阿波.avi')
#输出:False
#怪不好意思啊的,哈哈
os.path.exists('E:\\python_py\\input.txt')
#输出:True
isabs(path):判断路径书否为绝对路径
isdir(path):判断指定路径中是否存在这样的一个
目录
os.path.isdir('E:\\python_py')
#输出:True(目录嘛)
isfile(path):判断指定路径中是否存在这样的一个
文件
os.path.isfile('E:\\python_py\\input.txt')
#输出:True(文件嘛)
islink(path):判断指定路径中是否存在这样的一个符号链接
ismount(path):判断指定路径中是否存在这样的一个挂载点
samefile(path1,path2):判断path1和path2两个路径是否指向同一个文件
给大家一个实例吧,是在一本书上看到的,用python的zip方法将自己所选的文件压缩打包的指定的路径里面:
import os
import time
source = ['"C:\\My Documents"',"C:\\Code"]#这里是需要转换的文件所在的的位置
target_dir = 'E:\\Backup'#转换完成之后放到的文件目录
if not os.path.exists(target_dir):#首先设置第一个文件夹
os.mkdir(target_dir)
today = target_dir + os.sep +\
time.strftime('%Y%m%d')
now = time.strftime('%H%M%S')
target = today + os.sep + now + '.zip'
if not os.path.exists(today):
os.mkdir(today)
print ('Successful created directory',today)
zip_commend = 'zip -r {0} {1}'.format(target,' '.join(source))#执行压缩的命令
print ("Zip command is:")
print (zip_commend)
print ('Running:')
if os.system(zip_commend) ==0:
print('Successful backup to',target)
else:
print('Backup FAILED')
这个不是那本书上的最后优化的版本,应该是第二个版本。
注:以上所有程序都是Python,可能有的地方没有标记好