目录
1. 遍历目录下文件
os.walk方法
找到Windows目录下所有.bat文件
import os
filelist = []
rootdir = os.path.normpath('c:\Windows')
for root, subfolders, files in os.walk(rootdir):
for file in files:
if file.find('.bat') != -1:
file_dir_path = os.path.join(root, file)
filelist.append(file_dir_path)
os.path.normpath() # 将路径规范化
os.path.join() # 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
# 其他os.path的方法
os.path.splitext() # 分离文件名与扩展名
os.path.getsize() # 放回文件夹大小
os.path.getatime() # 返回目录或文件最后存取时间
os.path.getmtime() # 返回目录或文件最后修改时间
os.path.abspath() # 返回规范化的绝对路径
os.path.split() # 分割目录和文件,并返回
os.path.commonprefix() # 所有list中最长的公共路径
os.path.exists() # 存在True,不存在False
os.path.isfile() # 是存在的文件True,不存在False
os.path.isdir() # 是存在的目录True,不存在False
2. 文件的读写
file = open('test.txt', 'w') # 以读的方式打开文件,如果文件不存在则创建文件
file.write('test\n') # 写入
fp.writelines(seq) # 把seq的内容全部写到文件中(多行一次性写入)。这个函数也只是忠实地写入,不会在每行后面加上任何东西。
file.read() # 读取整个文件
file.readine() # 读取一行文件
file.readines() # 逐行读取文件
file.seek() # 指定cursor的位置到第几个字节
file.tell() # 返回当前cursor位置
file.close() # 关闭文件
关于open 模式:
- w 以写方式打开,
- a 以追加模式打开 (从 EOF 开始, 必要时创建新文件)
- r+ 以读写模式打开
- w+ 以读写模式打开 (参见 w )
- a+ 以读写模式打开 (参见 a )
- rb 以二进制读模式打开
- wb 以二进制写模式打开 (参见 w )
- ab 以二进制追加模式打开 (参见 a )
- rb+ 以二进制读写模式打开 (参见 r+ )
- wb+ 以二进制读写模式打开 (参见 w+ )
- ab+ 以二进制读写模式打开 (参见 a+ )
3. 目录的操作
os.mkdir("file") # 创建目录
# 复制文件:
shutil.copyfile("oldfile","newfile") # oldfile和newfile都只能是文件
shutil.copy("oldfile","newfile") # oldfile只能是文件,newfile可以是文件,也可以是目标目录
# 复制文件夹:
shutil.copytree("olddir","newdir") # olddir和newdir都只能是目录,且newdir必须不存在
# 重命名文件(目录)
os.rename("oldname","newname") # 文件或目录都是使用这条命令
# 移动文件(目录)
shutil.move("oldpos","newpos")
# 删除文件
os.remove("file")
# 删除目录
os.rmdir("dir") # 只能删除空目录
shutil.rmtree("dir") # 空目录、有内容的目录都可以删
# 转换目录
os.chdir("path") 换路径