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 从远程服务器下载日志文件的程序
Feb 10 Python
Python写的贪吃蛇游戏例子
Jun 16 Python
Python实现查找系统盘中需要找的字符
Jul 14 Python
python实现简单爬虫功能的示例
Oct 24 Python
Unicode和Python的中文处理
Mar 19 Python
Python 装饰器实现DRY(不重复代码)原则
Mar 05 Python
pandas 获取季度,月度,年度首尾日期的方法
Apr 11 Python
python开发之anaconda以及win7下安装gensim的方法
Jul 05 Python
python-tornado的接口用swagger进行包装的实例
Aug 29 Python
Pycharm debug调试时带参数过程解析
Feb 03 Python
Python如何输出百分比
Jul 31 Python
详解Python requests模块
Jun 21 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和MySQL保存和输出图片
2006/10/09 PHP
php的curl实现get和post的代码
2008/08/23 PHP
作为PHP程序员应该了解MongoDB的五件事
2013/06/03 PHP
领悟php接口中interface存在的意义
2013/06/27 PHP
php 判断是否是中文/英文/数字示例代码
2013/09/30 PHP
php metaphone()函数的定义和用法
2016/05/15 PHP
详解PHP实现定时任务的五种方法
2016/07/25 PHP
jQuery 在光标定位的地方插入文字的插件
2012/05/10 Javascript
js调试系列 控制台命令行API使用方法
2014/06/18 Javascript
js在指定位置增加节点函数insertBefore()用法实例
2015/01/12 Javascript
浅谈Jquery核心函数
2015/06/18 Javascript
jquery append 动态添加的元素事件on 不起作用的解决方案
2015/07/30 Javascript
利用jQuery实现WordPress中@的ID悬浮显示评论内容
2015/12/11 Javascript
完美解决spring websocket自动断开连接再创建引发的问题
2017/03/02 Javascript
jQuery.Form实现Ajax上传文件同时设置headers的方法
2017/06/26 jQuery
vuex中的 mapState,mapGetters,mapActions,mapMutations 的使用
2018/04/13 Javascript
animate.css在vue项目中的使用教程
2018/08/05 Javascript
laypage.js分页插件使用方法详解
2019/07/27 Javascript
分享8个JavaScript库可更好地处理本地存储
2020/10/12 Javascript
[06:36]吞吞映像top1
2014/06/20 DOTA
python实现的简单FTP上传下载文件实例
2015/06/30 Python
Python使用PIL库实现验证码图片的方法
2016/03/11 Python
浅谈Python类里的__init__方法函数,Python类的构造函数
2016/12/10 Python
python使用turtle绘制分形树
2018/06/22 Python
PyTorch加载预训练模型实例(pretrained)
2020/01/17 Python
泰国综合购物网站:Lazada泰国
2018/04/09 全球购物
台湾SHOPRO购物行家:亚洲首创影视.3C.家电.优质购物平台
2018/05/07 全球购物
护理助产毕业生的求职信
2014/03/02 职场文书
班委竞选演讲稿
2014/04/28 职场文书
感恩母亲节演讲稿
2014/05/07 职场文书
作风转变年心得体会
2014/10/22 职场文书
假如给我三天光明读书笔记
2015/06/26 职场文书
党课主持词大全
2015/06/30 职场文书
2015年教务主任工作总结
2015/07/22 职场文书
python实现股票历史数据可视化分析案例
2021/06/10 Python
HTML基础详解(下)
2021/10/16 HTML / CSS