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 相关文章推荐
Django1.3添加app提示模块不存在的解决方法
Aug 26 Python
python+pyqt5实现KFC点餐收银系统
Jan 24 Python
python如何以表格形式打印输出的方法示例
Jun 21 Python
用python写一个定时提醒程序的实现代码
Jul 22 Python
python scrapy爬虫代码及填坑
Aug 12 Python
Python实现元素等待代码实例
Nov 11 Python
Django Admin后台添加数据库视图过程解析
Apr 01 Python
python将dict中的unicode打印成中文实例
May 11 Python
Python如何避免文件同名产生覆盖
Jun 09 Python
Python tkinter制作单机五子棋游戏
Sep 14 Python
Python3 如何开启自带http服务
May 18 Python
PyTorch中的torch.cat简单介绍
Mar 17 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中数组合并的两种方法及区别介绍
2012/09/14 PHP
PHP中__FILE__、dirname与basename用法实例分析
2014/12/01 PHP
php+ajax+json 详解及实例代码
2016/12/12 PHP
Array对象方法参考
2006/10/03 Javascript
Javascript Cookie读写删除操作的函数
2010/03/02 Javascript
js 替换功能函数,用正则表达式解决,js的全部替换
2010/12/08 Javascript
调用innerHTML之后onclick失效问题的解决方法
2014/01/28 Javascript
jQuery实现DIV层淡入淡出拖动特效的方法
2015/02/13 Javascript
JS+CSS实现美化的下拉列表框效果
2015/08/11 Javascript
JS实现带圆弧背景渐变效果的导航菜单代码
2015/10/13 Javascript
jQuery插件Validation快速完成表单验证的方式
2016/07/28 Javascript
Base64(二进制)图片编码解析及在各种浏览器的兼容性处理
2017/02/09 Javascript
js实现拖拽功能
2017/03/01 Javascript
微信小程序 scroll-view实现锚点滑动的示例
2017/12/06 Javascript
bootstrap实现tab选项卡切换
2020/08/09 Javascript
Javascript柯里化实现原理及作用解析
2020/10/22 Javascript
[02:35]DOTA2英雄基础教程 狙击手
2014/01/14 DOTA
[01:24:16]2018DOTA2亚洲邀请赛 4.6 全明星赛
2018/04/10 DOTA
Python requests发送post请求的一些疑点
2018/05/20 Python
在Python中分别打印列表中的每一个元素方法
2018/11/07 Python
Python assert关键字原理及实例解析
2019/12/13 Python
tensorflow之tf.record实现存浮点数数组
2020/02/17 Python
python爬虫学习笔记之Beautifulsoup模块用法详解
2020/04/09 Python
详解matplotlib绘图样式(style)初探
2021/02/03 Python
Grow Gorgeous美国官网:只要八天,体验唤醒毛囊后新生的茂密秀发
2018/06/04 全球购物
Orvis官网:自1856年以来,优质服装、飞钓装备等
2018/12/17 全球购物
澳大利亚领先的内衣店:Bendon Lingerie澳大利亚
2020/05/15 全球购物
保护环境建议书100字
2014/05/13 职场文书
优秀语文教师事迹
2014/05/18 职场文书
启动仪式策划方案
2014/06/14 职场文书
中华魂放飞梦想演讲稿
2014/08/26 职场文书
公司授权委托书
2014/10/17 职场文书
2015年司法局工作总结
2015/05/22 职场文书
信用卡催款律师函
2015/05/27 职场文书
2016年元旦致辞
2015/08/01 职场文书
python中的None与NULL用法说明
2021/05/25 Python