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脚本实现集群检测和管理功能
Mar 06 Python
python编码总结(编码类型、格式、转码)
Jul 01 Python
Python探索之自定义实现线程池
Oct 27 Python
Python中支持向量机SVM的使用方法详解
Dec 26 Python
在python中利用最小二乘拟合二次抛物线函数的方法
Dec 29 Python
简单了解python关系(比较)运算符
Jul 08 Python
OpenCV 模板匹配
Jul 10 Python
pandas 空数据处理方法详解
Nov 02 Python
python tkinter canvas使用实例
Nov 04 Python
Python实现报警信息实时发送至邮箱功能(实例代码)
Nov 11 Python
Django如何在不停机的情况下创建索引
Aug 02 Python
python类共享变量操作
Sep 03 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数组传递是值传递而非引用传递概念纠正
2013/01/31 PHP
推荐10个提供免费PHP脚本下载的网站
2014/12/31 PHP
PHP实现合并discuz用户
2015/08/05 PHP
基于Laravel实现的用户动态模块开发
2017/09/21 PHP
PHP实现动态获取函数参数的方法示例
2018/04/02 PHP
PHP中PDO事务处理操作示例
2018/05/02 PHP
表单内同名元素的控制
2006/11/22 Javascript
一个可绑定数据源的jQuery数据表格插件
2010/07/17 Javascript
关于js中alert弹出窗口文本换行问题简单详细说明
2012/12/11 Javascript
jQuery动画效果animate和scrollTop结合使用实例
2014/04/02 Javascript
jQuery实现渐变下拉菜单的简单方法
2015/03/11 Javascript
JS拖拽插件实现步骤
2015/08/03 Javascript
浅谈jquery的map()和each()方法
2016/06/12 Javascript
JS实现百度网盘任意文件强制下载功能
2018/08/31 Javascript
使用vue-router在Vue页面之间传递数据的方法
2019/07/15 Javascript
vue+layui实现select动态加载后台数据的例子
2019/09/20 Javascript
vue-cli和v-charts实现可视化图表过程解析
2019/10/08 Javascript
vue项目打包后请求地址错误/打包后跨域操作
2020/11/04 Javascript
[03:58]兄弟们,回来开黑了!DOTA2昔日战友招募宣传视频
2016/07/17 DOTA
在Django中限制已登录用户的访问的方法
2015/07/23 Python
python线程、进程和协程详解
2016/07/19 Python
python中的单引号双引号区别知识点总结
2019/06/23 Python
Python爬取破解无线网络wifi密码过程解析
2019/09/17 Python
PyTorch中clone()、detach()及相关扩展详解
2020/12/09 Python
纯css3实现的鼠标悬停动画按钮
2014/12/23 HTML / CSS
基于HTML5 Canvas:字符串,路径,背景,图片的详解
2013/05/09 HTML / CSS
ALDI奥乐齐官方海外旗舰店:德国百年超市
2017/12/27 全球购物
护理专业毕业生自荐信范文
2014/01/05 职场文书
毕业寄语大全
2014/04/09 职场文书
法律专业自荐信
2014/06/03 职场文书
作风转变年心得体会
2014/10/22 职场文书
在职人员跳槽求职信
2015/03/20 职场文书
2015年销售助理工作总结
2015/05/11 职场文书
又涨知识了,自律到底多重要?
2019/06/27 职场文书
导游词之西安大清真寺
2019/12/17 职场文书
Spring Boot 整合 Apache Dubbo的示例代码
2021/07/04 Java/Android