python入门(九):目录操作

getcwd()当前目录路径
>>> import os
>>> os.getcwd()
'E:\'
chdir()切换目录
>>> os.chdir("e:\pic1")
>>> os.getcwd()
'e:\pic1' 
 
 
listdir()列出目录下所有的文件和目录,返回一个列表
  os.listdir()
>>> os.listdir("e:\blog")

['1.txt', '2.txt', 'a', 'b']

 
 
 >>> import os.path
>>> os.path.isdir("e:\blog\config.py")
False
>>> os.path.isdir("e:\blog\flask")
True
>>> os.path.isfile("e:\blog\config.py")
True
>>> os.path.isfile("e:\blog\flask")
False
 
 
小练习:统计一个目录下(一层目录),统计一下有多个文件
统计一下有多少个目录
提示:用os.listdir  和判断文件和路径的api来进行计数
算法:
1 定义文件计数的变量
2 定义文件夹计数的变量
并赋值0
3 使用os.listdir()获取所有的文件和目录名称,这个返回值是列表
4 使用for 进行遍历,使用os.path.isdir和isfile来分别判断是文件还是目录
如果是文件,则在文件计数的变量上+1,否则在目录计数的变量上加一
5 输出统计结果:文件计数和目录计数的变量值
 import os
import os.path
file_count = 0
dir_count =0

for i in os.listdir("e:\pic1"):
    print("取出的内容:",i)
    if os.path.isfile("e:\pic1\"+i):
        file_count+=1
    else:
        dir_count+=1
print("文件个数:%s" %file_count)
print("目录个数:%s" %dir_count)
 
 
remove删除文件
 >>> import os
>>> os.getcwd()
'E:\'
>>> os.chdir("e:\pic1")
>>> os.getcwd()
'e:\pic1'
>>> os.remove("e:\pic1\1.txt")
>>> os.remove("2.txt")
>>> os.remove("2.txt")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
FileNotFoundError: [WinError 2] 系统找不到指定的文件。: '2.txt'
>>>
 
创建目录
 >>> os.mkdir("e:\pic1\testman")
>>> os.mkdir("e:\pic1\testman1")
>>> os.mkdir("e:\pic1\testman")
>>> os.mkdir("e:\pic1\testman1")
>>> os.mkdir("e:\pic1\testman1\testman3")
>>> os.mkdir("e:\pic1\testman1\testman4") 
 
删目录  递归删除空目录
 >>> os.removedirs("e:\pic1\testman1")
 从路径的下面开始删除空目录,如果遇到了某个
目录非空(包含子目录或者文件)就停止删除目录了 
os.walk()?
 import shutil?
 
判断是不是绝对路径
 >>> os.getcwd()
'e:\pic1'
>>> os.path.isabs("1.txt")
False
>>> os.path.isabs("e:\pic1\1.txt")
True 
 
 
判断文件存在不存在
 >>> if not os.path.exists("e:\pic1\2.txt"):
...     with open("e:\pic1\2.txt","w") as fp:
...         fp.write("") 
 
 
 创建一个10级目录,每个目录的名字从gloryroad1-10,每个目录创建一个文件,文件的名字是1-10.txt,文件内容写上文件名
 os.mkdir("e:\pic1\testman11")
算法: 
 1 写一个for 循环,循环10次
 2 在循环体下,,创建一个目录为gloroadi(i是循环的变量值),os.chdir进入到新创建的目录,然后用with方法创建文件,文件名使用i变量+".txt"的方式来拼接文件名,
然后使用w模式,给文件写内容,写的文件内容就是拼接的文件名

import os
os.chdir("D:\gloaryroad")
first_dir=os.getcwd()
for i in range(1,11):
last_dir="good"+str(i)
os.mkdir(first_dir+"\"+last_dir)
first_dir+="\"+last_dir
os.chdir(first_dir)
with open(str(i)+".txt","w") as fp:
fp.write(str(i)+".txt")

--------------------------------------------------

 
 import os
dir_name = "glroyroad"
os.chdir("e:\pic1")
for i in range(1,11):
    os.mkdir(dir_name+str(i))
    os.chdir(dir_name+str(i))
    with open(str(i)+".txt","w") as fp:
        fp.write(str(i)+".txt")
 
 
获取文件所在的目录路径
 >>> os.path.dirname(r"e:pic11.txt")
'e:\pic1'
获取文件的文件名
>>> os.path.basename(r"e:pic11.txt")
'1.txt' 
 
 
获取到切割的文件名和文件的后缀名
 >>> os.path.splitext(r"e:pic11.txt")
('e:\pic1\1', '.txt') 
 
正在使用的平台   nt是win7
 >>> os.name
'nt' 
 
文件重命名
 >>> os.rename("2.txt","200.txt")
>>> os.listdir()
['1.txt', '200.txt', 'glroyroad1', 'pic2', 'test', 'testman11', 'testmanxxxx', '
新建文本文档.txt'] 
 
文件大小(获取某一文件的字节数)

>>> os.path.getsize("e:\b.py")
223

 
 
 
 
原文地址:https://www.cnblogs.com/suitcases/p/10306610.html