Os模块
>>> import os
os.name 获取操作系统名字
>>> os.name
'nt'
>>>
os.getcwd() 获取当前的工作路径
>>> os.getcwd()
'C:\\Users\\cong'
>>>
os.chdir("e://") 切换目录
>>> os.chdir("e://")
>>> os.getcwd()
os.fchdir()改变当前工作目录到其他目录下
os.listdir(".") 当前路径下的目录
>>> os.listdir(".")
['$RECYCLE.BIN', 'a.txt', 'BaiduNetdiskDownload', 'KuGou', 'System Volume Information']
>>>
遍历目录:
>>> for i in os.listdir("."):
... print i
...
$RECYCLE.BIN
a.txt
BaiduNetdiskDownload
KuGou
System Volume Information
>>>
os.mkdir()
1、创建目录,不能在不存在的目录下创建目录
>>> import os
>>> os.mkdir("f:\\zhang\\1.txt") #mkdir不能在不存在的文件夹“zhang”下面建立另一个文件夹,因为程序调用创建文件夹路径时,找不到文件夹“zhang”,所以会报错说找不到路径。
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
WindowsError: [Error 3] : 'f:\\zhang\\1.txt'
>>> os.makedirs("f:\\zhang\\1.txt")
>>>
2、不能创建已经存在的目录
>>> os.mkdir("f:\\zhang")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
WindowsError: [Error 183] : 'f:\\zhang'
os.makedirs() 创建多层目录,不存在的目录的话会自动创建
>>> os.makedirs("f:\\cong1\\1\\2")
>>>
Os.rmdir() 删除目录,删除最后一级目录
>>> os.rmdir("f:\\zhang\\1.txt") #只删除1.txt目录
>>> os.mkdir("f:\\zhang\\1.txt")
Os..removedirs() 删除多级目录
>>> os.removedirs("f:\\zhang\\1.txt") #zhang和1.ttx目录都删除
>>>
Os.remove() 只能删除文件,不能删除文件夹
>>> os.remove("f:\\zhang\\1.txt")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
WindowsError: [Error 5] : 'f:\\zhang\\1.txt'
>>> os.remove("f:\\remove.txt")
>>>
Os.access() 检验权限模式
>>> os.access("f:\\1.txt",os.F_OK) #测试path是否存在
True
>>> os.access("f:\\199.txt",os.F_OK)
False
>>> os.access("f:\\1.txt",os.R_OK) #测试文件是否有读的权限
True
>>> os.access("f:\\1.txt",os.W_OK) #测试文件是否有写的权限
True
>>> os.access("f:\\1.txt",os.X_OK) #测试文件是否可执行
True
>>>
os.chmod() 修改文件或目录的权限
Os.rename() 文件重命名
os.rename("test.txt","zhang.txt") 把test.txt文件名修改成zhang.txt
os.path模块的访问
os.path.isfile 判断是文件
>>> os.path.isfile("e:\\a.txt")
True
os.path.isdir 判断是目录
>>> os.path.isdir("KuGou")
True
练习:查询一个目录下有多少文件,多少目录
file1=0
dir1=0
>>> for i in os.listdir("."):
... if os.path.isdir(i):
... dir1+=1
... else:
... file1+=1
print dir1,file1
2,4
os.path.basename() #返回文件的文件名
>>> os.path.basename("\\1.txt")
'1.txt'
Os.path.abspath() #返回文件的绝对路径
>>> os.path.abspath("\\1.txt")
'f:\\1.txt'
Os.path.dirname() #返回文件的路径,不包含文件名
>>> os.path.dirname("\\1.txt")
'\\'
Os.path.exists() #判断文件是否存在
>>> os.path.exists("\\1.txt")
True
>>>
os.path.join(a,b)把a和b字符连接起来,即将多个路径组合起来返回
>>> os.path.join("e:\\e","zhang.txt")
'e:\\e\\zhang.txt'
>>>
os.path.split(path) 将路径分为目录和文件名两部分
>>> os.path.split("e:\\e\\zhang.txt")
('e:\\e', 'zhang.txt')
os.path.splitext() 将文件名字分为文件名和扩展名两部分
>>> os.path.splitext("zhang.txt")
('zhang', '.txt')
获得文件的信息
Getatime() 返回文件的最近访问时间
>>> os.path.getatime("f:\\")
1500731604.3641846
Getctime() 返回文件的创建时间
>>> os.path.getctime("f:\\")
1497154323.3959808
Getmtime() 返回最近文件的修改时间
>>> os.path.getmtime("f:\\")
1500731604.3641846
Getsize()返回文件的大小,单位为字节
>>> os.path.getsize("f:\\")
8192L
Abspath()返回绝对路径
>>> os.path.abspath("f:\\")
'f:\\'
例9.1练习:
创建一个文件,写入内容,然后重命名,输出文件内容
#!/usr/bin/python
#encoding=utf-8
import os
for tempdir in ('/e',r"e:\\e"):
print tempdir
print os.path.isdir(tempdir)
if os.path.isdir(tempdir): #判断上面元组中的元素是否存在并且为一个目录
break
else:
print u"没有可用的临时文件"
tempdir=""
print u"可用的临时目录为:%s" %(tempdir)
if tempdir:
os.chdir(tempdir) #转到临时目录路径下
cwd=os.getcwd() #获取当前路径
print u"***创建临时目录:"
print u"当前路径为:%s" %(cwd)
print u"***创建example目录:"
os.mkdir('example') #创建目录
os.chdir("example") #转到创建的目录路径下
cwd=os.getcwd()
print u"***一个新的工作目录:"
print cwd
print u"***原始的目录列表:"
print os.listdir(cwd)
print u"***创建测试文件"
fobj=open("test","w")
fobj.write("foo\n")
fobj.write("bar\n")
fobj.close()
print u"***更新目录列表:"
print os.listdir(cwd) #文件列表
print u"***重命名文件"
os.rename("test","filename.txt")
print u"***更新文件列表:"
print os.listdir(cwd)
path=os.path.join(cwd,os.listdir(cwd)[0]) #将文件路径和文件名字组合起来
print u"***完整的文件路径名:"
print path
print u"***(路径名,绝对路径名==)"
print os.path.split(path) #将文件目录和文件名分开为两部分
print u"***(文件名,扩展名)"
print os.path.splitext(os.path.basename(path)) #将文件名分为文件名字和扩展名两部分
print u"***展示文件的内容"
f=open(path)
for i in f:
print i,
f.close()
print u"***删除测试文件"
os.remove(path)
print u"***更新文件列表:"
print os.listdir(cwd)
os.chdir(os.pardir)
print u"***删除测试目录"
os.rmdir('example')
print "DONE"
*********************************************************
C:\Users\cong>python f:\\python\\0708\\os_path.txt
/e
False
no temp directory available
e:\\e
True
e:\\e
current temporary directory:
e:\e
***创建example目录:
***一个新的工作目录:
e:\e\example
***原始的目录列表:
[]
***创建测试文件
***更新目录列表:
['test']
***重命名文件
***更新文件列表:
['filename.txt']
***完整的文件路径名:
e:\e\example\filename.txt
***(路径名,绝对路径名==)
('e:\\e\\example', 'filename.txt')
***(文件名,扩展名)
('filename', '.txt')
***展示文件的内容
foo
bar
***删除测试文件
***更新文件列表:
[]
***删除测试目录
DONE