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通过RabbitMQ服务器实现交换机功能的实例教程
Jun 29 Python
修复 Django migration 时遇到的问题解决
Jun 14 Python
python模块导入的细节详解
Dec 10 Python
解决Pandas的DataFrame输出截断和省略的问题
Feb 08 Python
python 实现读取一个excel多个sheet表并合并的方法
Feb 12 Python
Python程序打包工具py2exe和PyInstaller详解
Jun 28 Python
Python:slice与indices的用法
Nov 25 Python
Django项目使用ckeditor详解(不使用admin)
Dec 17 Python
pyftplib中文乱码问题解决方案
Jan 11 Python
Python通过Pillow实现图片对比
Apr 29 Python
使用Python实现批量ping操作方法
May 06 Python
python实现scrapy爬虫每天定时抓取数据的示例代码
Jan 27 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实现小型站点广告管理(修正版)
2006/10/09 PHP
php开启安全模式后禁用的函数集合
2011/06/26 PHP
php实现文件下载(支持中文文名)
2013/12/04 PHP
php实现随机生成易于记忆的密码
2015/06/19 PHP
PHP 实现字符串翻转(包含中文汉字)的实现代码
2017/04/01 PHP
作为PHP程序员你要知道的另外一种日志
2018/07/30 PHP
Ubuntu中支持PHP5与PHP7双版本的简单实现
2018/08/19 PHP
laravel框架如何设置公共头和公共尾
2019/10/22 PHP
javascript 对象比较实现代码
2009/04/27 Javascript
JS读取cookies信息(记录用户名)
2012/01/10 Javascript
Jquery 例外被抛出且未被接住原因介绍
2013/09/04 Javascript
js下将阿拉伯数字每三位一逗号分隔(如:15000000转化为15,000,000)
2014/06/02 Javascript
用js判断是否为360浏览器的实现代码
2015/01/15 Javascript
jQuery实现动画效果circle实例
2015/08/06 Javascript
JQuery的Pager分页器实现代码
2016/05/03 Javascript
在js中实现邮箱格式的验证方法(推荐)
2016/10/24 Javascript
微信小程序swiper组件用法实例分析【附源码下载】
2017/12/07 Javascript
Angular 作用域scope的具体使用
2017/12/11 Javascript
深入理解Vue 的钩子函数
2018/09/05 Javascript
解决angularjs WdatePicker ng-model的问题
2018/09/13 Javascript
Vue CLI 3搭建vue+vuex最全分析(推荐)
2018/09/27 Javascript
python选择排序算法的实现代码
2013/11/21 Python
Python中使用PIPE操作Linux管道
2015/02/04 Python
基于wxpython实现的windows GUI程序实例
2015/05/30 Python
在Linux下使用Python的matplotlib绘制数据图的教程
2015/06/11 Python
python求质数列表的例子
2019/11/24 Python
python实现滑雪游戏
2020/02/22 Python
2分钟教你实现环形/扇形菜单(基础版)
2020/01/15 HTML / CSS
皮姆斯勒语言学习:Pimsleur Language Programs
2018/06/30 全球购物
加拿大城市本地限时优惠:Buytopia.ca
2018/09/19 全球购物
大学生自我鉴定评语
2014/01/27 职场文书
幼儿园教师教育感言
2014/02/28 职场文书
2015年仓库工作总结
2015/04/09 职场文书
国家助学贷款承诺书
2015/04/30 职场文书
2015年大学宣传部工作总结
2015/05/26 职场文书
党小组鉴定意见
2015/06/02 职场文书