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中lambda函数 list comprehension 和 zip函数使用指南
Sep 28 Python
python字符类型的一些方法小结
May 16 Python
Python内置数据结构与操作符的练习题集锦
Jul 01 Python
python定向爬虫校园论坛帖子信息
Jul 23 Python
使用Python 统计高频字数的方法
Jan 31 Python
python验证码图片处理(二值化)
Nov 01 Python
python中自带的三个装饰器的实现
Nov 08 Python
解决tensorflow打印tensor有省略号的问题
Feb 04 Python
python3连接MySQL8.0的两种方式
Feb 17 Python
python生成大写32位uuid代码
Mar 03 Python
python中的split、rsplit、splitlines用法说明
Oct 23 Python
Django权限控制的使用
Jan 07 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
使用无限生命期Session的方法
2006/10/09 PHP
关于session在PHP5的配置文件中的详细设置参数说明
2011/04/20 PHP
php学习笔记 面向对象的构造与析构方法
2011/06/13 PHP
PHP 解决session死锁的方法
2013/06/20 PHP
PHPMAILER实现PHP发邮件功能
2018/04/18 PHP
PHP单例模式模拟Java Bean实现方法示例
2018/12/07 PHP
2014年最火的Node.JS后端框架推荐
2014/10/27 Javascript
jquery仿百度经验滑动切换浏览效果
2015/04/14 Javascript
解决js函数闭包内存泄露问题的办法
2016/01/25 Javascript
深入理解JQuery循环绑定事件
2016/06/02 Javascript
使用jQuery Ajax 请求webservice来实现更简练的Ajax
2016/08/04 Javascript
解决html-jquery/js引用外部图片时遇到看不了或出现403的问题
2017/09/22 jQuery
JS声明对象时属性名加引号与不加引号的问题及解决方法
2018/02/16 Javascript
React Native 图片查看组件的方法
2018/03/01 Javascript
vue项目中应用ueditor自定义上传按钮功能
2018/04/27 Javascript
vue实现绑定事件的方法实例代码详解
2019/06/20 Javascript
JavaScript使用localStorage存储数据
2019/09/25 Javascript
详解js location.href和window.open的几种用法和区别
2019/12/02 Javascript
如何实现iframe父子传参通信
2020/02/05 Javascript
进一步探究Python的装饰器的运用
2015/05/05 Python
Python实现好友全头像的拼接实例(推荐)
2017/06/24 Python
用python的requests第三方模块抓取王者荣耀所有英雄的皮肤实例
2017/12/14 Python
python实现在一个画布上画多个子图
2020/01/19 Python
python时间日期操作方法实例小结
2020/02/06 Python
python实现opencv+scoket网络实时图传
2020/03/20 Python
详解CSS3+JS完美实现放大镜模式
2020/12/03 HTML / CSS
美国台面电器和厨具品牌:KitchenAid
2019/04/12 全球购物
俄罗斯园林植物网上商店:Garshinka
2020/07/16 全球购物
自荐信格式
2013/12/01 职场文书
中专毕业生的自我鉴定
2013/12/01 职场文书
开业庆典邀请函
2014/01/08 职场文书
运动会表扬稿大全
2014/01/16 职场文书
理工类毕业自我鉴定
2014/02/20 职场文书
机关会计岗位职责
2014/04/08 职场文书
在MySQL中你成功的避开了所有索引
2022/04/20 MySQL
Golang 实现WebSockets
2022/04/24 Golang