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 生成目录树及显示文件大小的代码
Jul 23 Python
Python遍历目录中的所有文件的方法
Jul 08 Python
Mac中Python 3环境下安装scrapy的方法教程
Oct 26 Python
Python中对象的引用与复制代码示例
Dec 04 Python
python深度优先搜索和广度优先搜索
Feb 07 Python
python如何爬取个性签名
Jun 19 Python
Flask实现图片的上传、下载及展示示例代码
Aug 03 Python
python通过nmap扫描在线设备并尝试AAA登录(实例代码)
Dec 30 Python
Python基于Tensor FLow的图像处理操作详解
Jan 15 Python
利用python画出AUC曲线的实例
Feb 28 Python
Python 如何反方向迭代一个序列
Jul 28 Python
python 输入字符串生成所有有效的IP地址(LeetCode 93号题)
Oct 15 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
php调用dll的实例操作动画与代码分享
2012/08/14 PHP
关于PHP递归算法和应用方法介绍
2013/04/15 PHP
PHP header()函数常用方法总结
2014/04/11 PHP
php防止用户重复提交表单
2015/11/02 PHP
javascript使用activex控件的代码
2011/01/27 Javascript
jQuery学习笔记 操作jQuery对象 属性处理
2012/09/19 Javascript
网页中返回顶部代码(多种方法)另附注释说明
2013/04/24 Javascript
jqGrid随窗口大小变化自适应大小的示例代码
2013/12/28 Javascript
利用JQuery制作符合Web标准的QQ弹出消息
2014/01/14 Javascript
JavaScript原型链示例分享
2014/01/26 Javascript
js使用心得分享
2015/01/13 Javascript
bootstrap实现弹窗和拖动效果
2016/01/03 Javascript
轻松掌握JavaScript装饰者模式
2016/08/27 Javascript
Javascript中引用类型传递的知识点小结
2017/03/06 Javascript
简单实现js轮播图效果
2017/07/14 Javascript
Vue实现点击时间获取时间段查询功能
2020/08/21 Javascript
Vue中qs插件的使用详解
2020/02/07 Javascript
JavaScript canvas基于数组生成柱状图代码实例
2020/03/06 Javascript
微信小程序仿抖音短视频切换效果的实例代码
2020/06/24 Javascript
python通过ElementTree操作XML获取结点读取属性美化XML
2013/12/02 Python
Python随机生成均匀分布在三角形内或者任意多边形内的点
2017/12/14 Python
python互斥锁、加锁、同步机制、异步通信知识总结
2018/02/11 Python
基于Python实现迪杰斯特拉和弗洛伊德算法
2020/05/27 Python
Python实现点阵字体读取与转换的方法
2019/01/29 Python
Python+Dlib+Opencv实现人脸采集并表情判别功能的代码
2020/07/01 Python
html5版canvas自由拼图实例
2014/10/15 HTML / CSS
HTML5 Canvas中使用用路径描画圆弧
2015/01/01 HTML / CSS
杠杆的科学教学反思
2014/01/10 职场文书
煤矿机修工岗位职责
2014/02/07 职场文书
2014年度安全生产目标管理责任书
2014/07/25 职场文书
大学生个人简历自我评价
2015/03/11 职场文书
2015年纪念“卢沟桥事变”78周年活动方案
2015/05/06 职场文书
人民检察院起诉书
2015/05/20 职场文书
住房公积金贷款工资证明
2015/06/12 职场文书
基督教追悼会答谢词
2015/09/29 职场文书
教育教学工作反思
2016/02/24 职场文书