相关模块
- os
- os.path
- shutil
-
pathlib(New in version 3.4)
基本操作
os.path.exists(pathname)
# new
pathlib.Path(pathname).exists()
os.path.isfile(pathname)
# new
pathlib.Path(pathname).is_file()
os.path.isdir(pathname)
# new
pathlib.Path(pathname).is_dir()
os.mknod(filename) # Windows下不可用
open(filename, "w") # 记得要关闭
# new
pathlib.Path(filename).touch(mode=438, exist_ok=True)
shutil.copyfile("oldfile", "newfile") # oldfile和newfile都只能是文件,目标文件会被覆盖
shutil.copy("oldfile", "newfile") # oldfile只能是文件,newfile可以是文件,也可以是目标目录
os.remove(filename)
# new
pathlib.Path(pathname).unlink()
file = open("test.txt", w)
file.seek(0)
file.truncate() # 注意文件指针的位置
file.close()
os.mkdir(pathname) # 创建单级目录
# new
pathlib.Path(pathname).mkdir() # 创建单级目录
os.makedirs(pathname) # 递归创建多级目录
# olddir 和 newdir 都只能是目录,且 newdir 必须不存在
shutil.copytree("olddir", "newdir")
os.rename(oldname, newname)
pathlib.Path(oldname).rename(newname)
shutil.move(oldpath, newpath)
os.rmdir("dir") #不能删除非空目录
# new
pathlib.Path("dir").rmdir()
# shutil.rmtree 可以删除非空目录,目录打开时也能删除
# 约等于'rd /Q /S dir'
shutil.rmtree("dir")
os.chdir(newpath)
'r': 只读(缺省。如果文件不存在,则抛出错误。)
'w': 只写(如果文件不存在,则自动创建文件。)
'a': 追加
'r+': 读写
>>> pathfile = r'D:\abc\def\ghi.txt'
>>> os.path.dirname(pathfile)
'D:\\abc\\def'
# new
str(Path(pathfile).parent)
>>> os.path.basename(pathfile)
'ghi.txt'
# new
Path(pathfile).name
os.path.getsize(pathfile) #单位为字节(Byte)
# or
os.stat(pathfile).st_size
# new
pathlib.Path(pathfile).stat().st_size
os.path.getctime(pathfile) # 创建时间
os.path.getmtime(pathfile) # 修改时间
os.path.getatime(pathfile) # 访问时间
# new
pathlib.Path(pathfile).stat().st_ctime # 创建时间
pathlib.Path(pathfile).stat().st_mtime # 修改时间
pathlib.Path(pathfile).stat().st_atime # 访问时间
os.path.abspath('.')
# new
str(pathlib.Path('.').resolve())
fileObj.write(text)
fileObj.flush()
os.fsync(fileObj.fileno())
>>> os.path.splitext(r'D:\tmp\3.jpg')[1]
'.jpg'
>>> os.path.splitext('3.jpg')[1]
'.jpg'
# new
pathlib.Path(r'D:\tmp\3.jpg').suffix
本文出自 walker snapshot