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用ConfigObj读写配置文件的实现代码
Mar 04 Python
python调用机器喇叭发出蜂鸣声(Beep)的方法
Mar 23 Python
Python优化技巧之利用ctypes提高执行速度
Sep 11 Python
python 内置函数filter
Jun 01 Python
python 时间信息“2018-02-04 18:23:35“ 解析成字典形式的结果代码详解
Apr 19 Python
python异步存储数据详解
Mar 19 Python
python将视频转换为全字符视频
Apr 26 Python
Python上下文管理器全实例详解
Nov 12 Python
pandas创建DataFrame的7种方法小结
Jun 14 Python
用python实现学生管理系统
Jul 24 Python
python help函数实例用法
Dec 06 Python
pytest进阶教程之fixture函数详解
Mar 29 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的Yii框架中登陆功能的实现
2015/08/21 PHP
php微信公众号开发之秒杀
2018/10/20 PHP
PHP pthreads v3下的Volatile简介与使用方法示例
2020/02/21 PHP
createElement与createDocumentFragment的点点区别小结
2011/12/19 Javascript
js父窗口关闭时子窗口随之关闭完美解决方案
2014/04/29 Javascript
深入理解JavaScript系列(31):设计模式之代理模式详解
2015/03/03 Javascript
jQuery Ajax使用实例
2015/04/16 Javascript
javascript作用域链(Scope Chain)用法实例解析
2015/11/30 Javascript
React Native实现简单的登录功能(推荐)
2016/09/19 Javascript
Vue中保存用户登录状态实例代码
2017/06/07 Javascript
Vue配合iView实现省市二级联动的示例代码
2018/07/27 Javascript
详解vue-cli3多环境打包配置
2019/03/28 Javascript
vue前端框架—Mint UI详解(更适用于移动端)
2019/04/30 Javascript
vue 解决遍历对象显示的顺序不对问题
2019/11/07 Javascript
详解Vue之事件处理
2020/07/10 Javascript
Javascript执行上下文顺序的深入讲解
2020/11/04 Javascript
[05:39]2014DOTA2国际邀请赛 DK晋级胜者组专访战队国士无双
2014/07/14 DOTA
[03:34]2014DOTA2西雅图国际邀请赛 淘汰赛7月15日TOPPLAY
2014/07/15 DOTA
Python实现的金山快盘的签到程序
2013/01/17 Python
Tesserocr库的正确安装方式
2018/10/19 Python
python reverse反转部分数组的实例
2018/12/13 Python
使用python3实现操作串口详解
2019/01/01 Python
Python matplotlib学习笔记之坐标轴范围
2019/06/28 Python
python绘制多个子图的实例
2019/07/07 Python
公认8个效率最高的爬虫框架
2020/07/28 Python
HTML5 form标签之解放表单验证、增加文件上传、集成拖放的使用方法
2013/04/24 HTML / CSS
英国第一蛋白粉品牌:Myprotein
2016/09/14 全球购物
英国假发网站:Hothair
2018/02/23 全球购物
数以千计的折扣工业产品:ESE Direct
2018/05/20 全球购物
国际性能运动服装品牌:Dare 2b
2018/07/27 全球购物
周年庆典邀请函范文
2014/01/23 职场文书
领导失职检讨书
2014/02/24 职场文书
2014年街道办事处工作总结
2014/12/11 职场文书
公务员年度考核登记表个人总结
2015/02/12 职场文书
2015年护士节慰问信
2015/03/23 职场文书
2016五一劳动节慰问信
2015/11/30 职场文书