一、os模块命令(主要用于目录和文件名)
#使用os模块之前,需要先导入
import os
1、listdir()
listdir() 获取指定文件夹下所有文件夹或者文件的名字的列表。按字母顺序排列。
import os
path_1 = ‘some_images/’
dirs_1 = os.listdir(path_1)
#读入dirs_1中的是一整串的名子,没有间隔和换行。如果要输出,可以用如下语句输出。
(注意观察,记住这个用法)
for file_name in dirs_1:
print file_name
2、os.getcwd()
os.getcwd()获取当前工作目录
result=os.getcwd()
print(result)
3.os.chdir()
os.chdir()改变当前的工作目录
os.chdir(’/home/hitshen2/workspace/zhaoyuanliang’)
results=os.getcwd()
print(results)
4、os.mkdir()
os.mkdir()用于创建文件夹(在当前的工作目录下创建文件夹)
os.mkdir(‘girls’) #在目录下创建了名为girls的文件夹
注:os.mkdir()只能创建一级目录,即在当前目录中创建
5、
(1)os.mkdirs()
os.mkdirs()也用于创建文件夹,但是可以用于创建多级目录
注:本条命令因该是python3本版的命令
(2)os.makedirs()
os.makedirs()用于创建多级目录,括号中是文件所要创建文件的路径
os.makedirs(’./baby/boys_girls’)
注: ./表示的是当前目录;baby和boys_girls都是不存在的文件。
该命令是python2版本中的命令
6、os.rmdir()
用于删除空目录
os.mkdir(‘bouy’)
os.rmdir(‘bouy’)
删除了空文件“bouy”
7、子模块os.path.
(1)os.path.exists(path)
如果path存在,返回True;如果path不存在,返回False。
注意:path是要带引号的目录
(2)os.path.abspath(‘aa/…’)
返回一个目录的绝对路径
(3)os.path.getsize(’’)
得到文件的大小
四、shutil模块
shutil模块是高级的文件操作模块。可以对文件进行移动、复制、打包、压缩、解压。
1、shutil.copy(src,dst)
复制文件的内容以及权限,先copyfile后copymode
src是要复制的文件(路径名字),dst是要复制到的文件夹路径
2、shutil.copyfile(src, dst)
拷贝文件
3、拷贝目录
shutil.copytree(‘dir’,‘dir_c’)
4、递归删除
shutil.rmtree(‘path’)
非常好用*
删除路径下的所有目录和文件。
五、glob模块
glob模块可以查找符合特定规则的文件路径名,查找文件只用三个匹配符:“”,“?”,“[]”。
其中,“”匹配0个或者多个字符
“?”匹配单个字符
[]”匹配指定范围内的字符,如:[0-9]匹配数字
1、glob.glob
返回所有匹配的文件路径列表。只有一个参数pathname,定义了文件路径的匹配规则,这里可以是绝对路径,也可以是相对路径。
import glob
a=glob.glob('./'+'*.jpg')
print(a)
[’./C.jpg’, ‘./B.jpg’, ‘./A.jpg’] ##此处返回的文件名是自己给定文件夹路径和文件名的连接,如果给定的是绝对路径,生成的列表就是绝对路径形式的,如果给定的是相对路径生成列表就是相对路径形式的。此处我给的是相对路径。
三、文件操作(用于文件,不是文件夹(目录))
1、打开文件
f=open(‘file_name.txt’,‘w’) #默认‘r’。当用‘w’时,即写入命令,如果文件不存在,则会创建文件
注:不要随便用‘w’命令,使用该命令打开文件,文本中原有文件将被删除,并从文件开头开始写入。
例如:执行
f=open(‘file_name.txt’,‘w’)
f.close()
看似什么都没有进行操作,但是文件中的原有文件全部都将被删除,文本变成空文件。
2、读取和写入行
写入所有行,用writelines()。没有writeline()命令,因为可以用write()命令。
path_1 = ‘some_images/’
dirs_1 = os.listdir(path_1)
f=open(‘file_name.txt’,‘w’)
for i in range(len(dirs_1)):
pp=dirs_1[i]+’\n’
f.writelines(pp)
f.close()
读所有行用readlines()
3、f.write()和f.read()命令