文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python3 文件(夹)基本操作

2023-01-31 08:21

关注

相关模块

  • 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)
  • open 常用模式。
'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
阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯