Python目录和文件处理总结详解


Posted in Python onSeptember 02, 2019

1、判断目录是否存在、判断文件是否存在、创建目录、重命名目录或文件

import os

#获取当前目录路径: E:\Work\Projects\python
print(os.getcwd()) 

#判断当前目录是否存在,不存在则创建目录dir1
if not os.path.isdir('dir1'):
  os.mkdir('dir1') 

#判断指定目录是否存在,不存在则创建目录dir22
if not os.path.isdir('E:\Work\Projects\python\dir22'):
  os.mkdir('E:\Work\Projects\python\dir22') 

#判断当前目录的指定文件是否存在
print(os.path.isfile('file1.txt'))

#重命名目录dir22为dir2(rename也可用于文件)
os.rename('dir22', 'dir2')

#切换到目录dir2
os.chdir('dir2')

#切换到目录dir2后获取当前目录路径: E:\Work\Projects\python\dir2
print(os.getcwd())

2、目录和文件的查询

当前目录结构为

│ 1.txt
│ 2.txt
│ test1.py
│
├─dir1
│ dir1_1.txt
│ dir1_2.txt
│
└─dir2

(1)获取指定目录下的目录和文件列表(不包括子目录)

import os
path = os.getcwd()
for filename in os.listdir(path):
  print(os.path.join(path,filename))
'''运行结果:
E:\Work\Projects\python\1.txt
E:\Work\Projects\python\2.txt
E:\Work\Projects\python\dir1
E:\Work\Projects\python\dir2
E:\Work\Projects\python\test1.py
'''

(2)递归获取指定目录下的目录和文件列表(包括子目录)

import os

path = os.getcwd()
#walk产生3元组:目录路径,目录名称,文件名
for dirpath,dirnames,filenames in os.walk(path):
  print("dirpath:{};dirnames:{};filenames:{}".format(dirpath,dirnames,filenames))

'''运行结果:
dirpath:E:\Work\Projects\python;dirnames:['dir1', 'dir2'];filenames:['1.txt', '2.txt', 'test1.py']
dirpath:E:\Work\Projects\python\dir1;dirnames:[];filenames:['dir1_1.txt', 'dir1_2.txt']
dirpath:E:\Work\Projects\python\dir2;dirnames:[];filenames:[]
'''

for dirpath,dirnames,filenames in os.walk(path):
  #输出所有文件
  for filename in filenames:
    print(os.path.join(dirpath, filename))
  #输出所有目录
  for dirname in dirnames:
    print(os.path.join(dirpath, dirname))

'''运行结果:
E:\Work\Projects\python\1.txt
E:\Work\Projects\python\2.txt
E:\Work\Projects\python\test1.py
E:\Work\Projects\python\dir1
E:\Work\Projects\python\dir2
E:\Work\Projects\python\dir1\dir1_1.txt
E:\Work\Projects\python\dir1\dir1_2.txt
'''

3、获取文件信息

import os
import time

filepath = r'E:\Work\Projects\python\1.txt'

#分割路径,返回一个元组(目录,文件名),结果:('E:\\Work\\Projects\\python', '1.txt')
print(os.path.split(filepath))

#返回目录部分,结果:E:\Work\Projects\python
print(os.path.dirname(filepath))

#返回文件名,结果:1.txt
print(os.path.basename(filepath))

#返回文件大小(单位为字节),结果:1296 
print(os.path.getsize(filepath))

#返回目录或文件的创建时间、最后修改时间、最后访问时间(单位为新纪元1970年1月1日到访问时的秒数)
ctime = os.path.getctime(filepath)
mtime = os.path.getmtime(filepath)
atime = os.path.getatime(filepath)
#结果例子:1566436201.5443518 1566439077.5319004 1566439099.905073
print(ctime, mtime, atime)

#Unix时间戳转换成时间
def unix2time(unix):
  time_local = time.localtime(unix)
  dt = time.strftime("%Y-%m-%d %H:%M:%S",time_local)
  return dt

#将Unix时间戳转换成时间
#结果例子:2019-08-22 09:10:01 2019-08-22 09:57:57 2019-08-22 09:58:19
print(unix2time(ctime),unix2time(mtime),unix2time(atime))

4、目录和文件的移动、拷贝、删除

当前目录结构为

│ 1.txt
│ 2.txt
│ test1.py
│
├─dir1
│ dir1_1.txt
│ dir1_2.txt
│
└─dir2
import shutil
#拷贝整个目录
shutil.copytree('dir1','dir1_bak')

#拷贝单个文件,第2个参数可以是目录,也可以是文件名
shutil.copy('1.txt', 'dir2/1_bak.txt')
shutil.copy('2.txt', 'dir2')

#移动目录或文件
shutil.move('dir1', 'dir2')
shutil.move('1.txt', 'dir2')

#删除整个目录
shutil.rmtree('dir1_bak')

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
从零学Python之入门(四)运算
May 27 Python
Python自动生产表情包
Mar 17 Python
深入理解Python中的内置常量
May 20 Python
python 制作自定义包并安装到系统目录的方法
Oct 27 Python
python 重命名轴索引的方法
Nov 10 Python
Django开发的简易留言板案例详解
Dec 04 Python
Python检查ping终端的方法
Jan 26 Python
python实现Virginia无密钥解密
Mar 20 Python
Python3环境安装Scrapy爬虫框架过程及常见错误
Jul 12 Python
Python socket非阻塞模块应用示例
Sep 12 Python
Python进程的通信Queue、Pipe实例分析
Mar 30 Python
matplotlib 多个图像共用一个colorbar的实现示例
Sep 10 Python
Python3操作Excel文件(读写)的简单实例
Sep 02 #Python
python函数修饰符@的使用方法解析
Sep 02 #Python
python3文件复制、延迟文件复制任务的实现方法
Sep 02 #Python
基于python进行抽样分布描述及实践详解
Sep 02 #Python
利用Python复制文件的9种方法总结
Sep 02 #Python
Python单元测试工具doctest和unittest使用解析
Sep 02 #Python
Python操作SQLite数据库过程解析
Sep 02 #Python
You might like
关于file_get_contents返回为空或函数不可用的解决方案
2013/06/24 PHP
php调用mysql存储过程实例分析
2014/12/29 PHP
PHP+Ajax实现的博客文章添加类别功能示例
2018/03/29 PHP
[全兼容哦]--实用、简洁、炫酷的页面转入效果loing
2007/05/07 Javascript
jQuery 表单验证扩展(四)
2010/10/20 Javascript
ejs v9 javascript模板系统
2012/03/21 Javascript
js将控件隐藏的方法及display属性介绍
2013/07/04 Javascript
JQuery中操作Css样式的方法
2014/02/12 Javascript
解决node-webkit 不支持html5播放mp4视频的方法
2015/03/11 Javascript
javascript制作游戏开发碰撞检测的封装代码
2015/03/31 Javascript
JavaScript中如何使用cookie实现记住密码功能及cookie相关函数介绍
2016/11/10 Javascript
详解windows下vue-cli及webpack 构建网站(二)导入bootstrap样式
2017/06/17 Javascript
vue2.0模拟锚点的实例
2018/03/14 Javascript
Webpack打包字体font-awesome的方法示例
2018/04/26 Javascript
jQuery中的类名选择器(.class)用法简单示例
2018/05/14 jQuery
Vue前后端不同端口的实现方法
2018/09/19 Javascript
vue微信分享出来的链接点开是首页问题的解决方法
2018/11/28 Javascript
基于jquery实现的tab选项卡功能示例【附源码下载】
2019/06/10 jQuery
JS创建自定义对象的六种方法总结
2020/12/15 Javascript
[49:12]完美世界DOTA2联赛PWL S2 Magma vs GXR 第二场 11.29
2020/12/02 DOTA
Python random模块(获取随机数)常用方法和使用例子
2014/05/13 Python
浅谈Python爬取网页的编码处理
2016/11/04 Python
python numpy元素的区间查找方法
2018/11/14 Python
VSCode Python开发环境配置的详细步骤
2019/02/22 Python
使用python将多个excel文件合并到同一个文件的方法
2019/07/09 Python
django 前端页面如何实现显示前N条数据
2020/03/16 Python
Python selenium实现断言3种方法解析
2020/09/08 Python
举例详解HTML5中使用JSON格式提交表单
2015/06/16 HTML / CSS
将"引用"作为函数参数有哪些特点
2013/04/05 面试题
物流管理专业应届生求职信
2013/11/21 职场文书
预备党员转正思想汇报
2014/09/26 职场文书
2015届本科毕业生自我鉴定
2014/09/27 职场文书
Python数据可视化之绘制柱状图和条形图
2021/05/25 Python
springboot 启动如何排除某些bean的注入
2021/08/02 Java/Android
CentOS安装Nginx并部署vue
2022/04/12 Servers
修改Nginx配置返回指定content-type的方法
2022/09/23 Servers