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 相关文章推荐
Python3通过Luhn算法快速验证信用卡卡号的方法
May 14 Python
python检测是文件还是目录的方法
Jul 03 Python
详解Django框架中用context来解析模板的方法
Jul 20 Python
Python的Flask框架中集成CKeditor富文本编辑器的教程
Jun 13 Python
python利用urllib和urllib2访问http的GET/POST详解
Sep 27 Python
Python排序搜索基本算法之冒泡排序实例分析
Dec 09 Python
Python 12306抢火车票脚本
Feb 07 Python
Python之修改图片像素值的方法
Jul 03 Python
Python imread、newaxis用法详解
Nov 04 Python
对tensorflow 中tile函数的使用详解
Feb 07 Python
详解Python中pyautogui库的最全使用方法
Apr 01 Python
Python CategoricalDtype自定义排序实现原理解析
Sep 11 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
Yii2框架使用计划任务的方法
2016/05/25 PHP
弹出广告特效(一个IP只弹出一次)的代码
2007/07/27 Javascript
早该知道的7个JavaScript技巧
2013/03/27 Javascript
Javascript表格翻页效果的具体实现
2013/10/05 Javascript
javascript继承的六大模式小结
2015/04/13 Javascript
浅析js中substring和substr的方法
2015/11/09 Javascript
JS实现合并两个数组并去除重复项只留一个的方法
2015/12/17 Javascript
jQuery视差滚动效果网页实现方法经验总结
2016/09/29 Javascript
解决前端跨域问题方案汇总
2016/11/20 Javascript
ligerUI的ligerDialog关闭刷新的方法
2019/09/27 Javascript
使用Webpack提升Vue.js应用程序的4种方法(翻译)
2019/10/09 Javascript
jQuery实现数字华容道小游戏(实例代码)
2020/01/16 jQuery
vue2.x数组劫持原理的实现
2020/04/19 Javascript
[05:28]刀塔密之一:团结则存
2014/07/03 DOTA
Python迭代用法实例教程
2014/09/08 Python
python通过BF算法实现关键词匹配的方法
2015/03/13 Python
python简单实现刷新智联简历
2016/03/30 Python
Win8.1下安装Python3.6提示0x80240017错误的解决方法
2018/07/31 Python
Python实现京东秒杀功能代码
2019/05/16 Python
python tkinter实现彩球碰撞屏保
2019/07/30 Python
使用python写一个自动浏览文章的脚本实例
2019/12/05 Python
keras 特征图可视化实例(中间层)
2020/01/24 Python
css3中背景尺寸background-size详解
2014/09/02 HTML / CSS
利用css3如何设置没有上下边的列表间隔线
2017/07/03 HTML / CSS
房屋公证委托书
2014/04/03 职场文书
请假条的格式
2014/04/11 职场文书
民族精神月活动总结
2014/08/28 职场文书
我为党旗添光彩演讲稿
2014/09/13 职场文书
饭店服务员岗位职责
2015/02/09 职场文书
教师素质教育心得体会
2016/01/19 职场文书
《倍数和因数》教学反思
2016/02/23 职场文书
2019年大学毕业生个人自我鉴定范文大全
2019/03/21 职场文书
导游词之无锡丝业博物馆
2019/11/12 职场文书
python代码实现备忘录案例讲解
2021/07/26 Python
python基础之//、/与%的区别详解
2022/06/10 Python