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解决计数原理问题的方法
Aug 04 Python
Python BS4库的安装与使用详解
Aug 08 Python
用python爬取租房网站信息的代码
Dec 14 Python
Python基础学习之函数方法实例详解
Jun 18 Python
pycharm创建scrapy项目教程及遇到的坑解析
Aug 15 Python
python+rsync精确同步指定格式文件
Aug 29 Python
python rsa实现数据加密和解密、签名加密和验签功能
Sep 18 Python
基于Python实现船舶的MMSI的获取(推荐)
Oct 21 Python
Python requests模块session代码实例
Apr 14 Python
使用keras根据层名称来初始化网络
May 21 Python
用python爬虫批量下载pdf的实现
Dec 01 Python
golang特有程序结构入门教程
Jun 02 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/02/22 PHP
PHP循环结构实例讲解
2014/02/10 PHP
php5.2 Json不能正确处理中文、GB编码的解决方法
2014/03/28 PHP
PHP发送短信代码分享
2015/08/11 PHP
javascript编程起步(第三课)
2007/02/27 Javascript
JavaScript创建一个欢迎cookie弹出窗实现代码
2013/03/15 Javascript
js获取URL的参数的方法(getQueryString)示例
2013/09/29 Javascript
JavaScript面向对象编程入门教程
2014/04/16 Javascript
jQuery自定义添加"$"与解决"$"冲突的方法
2015/01/19 Javascript
你不需要jQuery(三) 新AJAX方法fetch()
2016/06/14 Javascript
基于JS模仿windows文件按名称排序效果
2016/06/29 Javascript
深入理解bootstrap框架之第二章整体架构
2016/10/09 Javascript
微信小程序开发之圆形菜单 仿建行圆形菜单实例
2016/12/12 Javascript
Angular 4 依赖注入学习教程之FactoryProvider的使用(四)
2017/06/04 Javascript
vue组件学习教程
2017/09/09 Javascript
解决Vue中mounted钩子函数获取节点高度出错问题
2018/05/18 Javascript
Angular2 自定义表单验证器的实现方法
2018/12/14 Javascript
微信小程序使用字体图标的方法
2019/05/23 Javascript
微信小程序HTTP请求从0到1封装
2019/09/09 Javascript
nodejs对mongodb数据库的增加修删该查实例代码
2020/01/05 NodeJs
在vue中使用el-tab-pane v-show/v-if无效的解决
2020/08/03 Javascript
python中wx将图标显示在右下角的脚本代码
2013/03/08 Python
Python实现读写sqlite3数据库并将统计数据写入Excel的方法示例
2017/08/07 Python
python微信公众号开发简单流程
2018/03/23 Python
Python提取特定时间段内数据的方法实例
2019/04/01 Python
Python 面向对象之封装、继承、多态操作实例分析
2019/11/21 Python
tensorflow pb to tflite 精度下降详解
2020/05/25 Python
Python数据模型与Python对象模型的相关总结
2021/01/26 Python
台湾母婴用品购物网站:Infant婴之房
2018/06/15 全球购物
在SQL Server中创建数据库主要有那种方式
2013/09/10 面试题
大学活动策划书范文
2014/01/10 职场文书
自动化专业职业生涯规划书范文
2014/01/16 职场文书
大学生应聘求职信
2014/05/26 职场文书
实施意见格式范本
2015/06/05 职场文书
德劲DE1107指针试高灵敏度全波段收音机机评
2022/04/05 无线电
Python可视化神器pyecharts绘制水球图
2022/07/07 Python