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调度框架APScheduler使用
Mar 28 Python
cmd运行python文件时对结果进行保存的方法
May 16 Python
基于python log取对数详解
Jun 08 Python
python+POP3实现批量下载邮件附件
Jun 19 Python
Python判断中文字符串是否相等的实例
Jul 06 Python
python RC4加密操作示例【测试可用】
Sep 26 Python
如何通过python实现人脸识别验证
Jan 17 Python
tensorflow如何继续训练之前保存的模型实例
Jan 21 Python
python开发实例之Python的Twisted框架中Deferred对象的详细用法与实例
Mar 19 Python
python matplotlib.pyplot.plot()参数用法
Apr 14 Python
python实现俄罗斯方块小游戏
Apr 24 Python
python调用ffmpeg命令行工具便捷操作视频示例实现过程
Nov 01 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中的魔术方法总结和使用实例
2015/05/11 PHP
php正则修正符用法实例详解
2016/12/29 PHP
浅谈Laravel核心解读之Console内核
2018/12/02 PHP
img标签中onerror用法
2009/08/13 Javascript
Jquery乱码的一次解决过程 图解教程
2010/02/20 Javascript
js 回车提交表单两种实现方法
2012/12/31 Javascript
JQuery切换显示的效果实例代码
2013/02/27 Javascript
js实现图片轮换效果代码
2013/04/16 Javascript
JS交换变量的方法
2015/01/21 Javascript
浅谈js中的三种继承方式及其优缺点
2016/08/10 Javascript
Bootstrap中data-target 到底是什么
2017/02/14 Javascript
JavaScript中 DOM操作方法小结
2017/04/25 Javascript
详解Webpack DLL用法以及功能
2017/07/11 Javascript
解决vue项目报错webpackJsonp is not defined问题
2018/03/14 Javascript
深入理解JavaScript 中的匿名函数((function() {})();)与变量的作用域
2018/08/28 Javascript
对vue v-if v-else-if v-else 的简单使用详解
2018/09/29 Javascript
提升node.js中使用redis的性能遇到的问题及解决方法
2018/10/30 Javascript
Angular使用ControlValueAccessor创建自定义表单控件
2019/03/08 Javascript
vue接入腾讯防水墙代码
2019/05/07 Javascript
解决vuex数据异步造成初始化的时候没值报错问题
2019/11/13 Javascript
关于vue 结合原生js 解决echarts resize问题
2020/07/26 Javascript
[58:42]DOTA2上海特级锦标赛C组败者赛 Newbee VS Archon第一局
2016/02/27 DOTA
从零学Python之入门(三)序列
2014/05/25 Python
python通过加号运算符操作列表的方法
2015/07/28 Python
Python多线程处理实例详解【单进程/多进程】
2019/01/30 Python
python scatter散点图用循环分类法加图例
2019/03/19 Python
python3实现猜数字游戏
2020/12/07 Python
Pycharm最新激活码2019(推荐)
2019/12/31 Python
python实现从ftp服务器下载文件
2020/03/03 Python
python的pip有什么用
2020/06/17 Python
canvas绘制太极图的实现示例
2020/04/29 HTML / CSS
网购亚洲时装、美容产品和生活百货:YesStyle
2016/09/15 全球购物
Vans英国官方网站:美国南加州的原创极限运动潮牌
2017/01/20 全球购物
俄罗斯大型在线书店:Читай-город
2019/10/10 全球购物
客服部班长工作责任制
2014/02/25 职场文书
2015年精神文明建设工作总结
2015/04/21 职场文书