python对文件目录的操作方法实例总结


Posted in Python onJune 24, 2019

本文实例讲述了python对文件目录的操作方法。分享给大家供大家参考,具体如下:

python 可以很方便的对文件进行打开,读写操作,删除操作,也可以很方便的对文件夹进行遍历操作。总体说来,有如下几个方面:

1. python 遍历文件目录,当然可以递归
2. python 删除文件
3. python 对文件进行重命名操作
4. python 创建文件夹 (多个层级创建)
5. python 删除文件夹  (多个层级删除)
6. python 移动文件
7. python 查找文件
8. 得到文件夹的大小

下面的代码是我在用python 做一个网盘服务端的时候用到的一些方法,记录下来,以供以后参考.

#coding:utf-8
import StringIO
import json
import os
import time
import glob
import shutil
DATETIMEFORMATER='%Y-%m-%d %X'
#only for windows
RECYCLED_FOLDER_NAME='Recycled'
def dateformat(datetime):
  '''return GMT TIME,need to change to LOCAL TIME'''
  return time.strftime( DATETIMEFORMATER,time.gmtime(datetime) )
def filesizeformat(size):
  ''' Convert file size to string '''
  KBSIZE=1024.00
  strSize='0 Byte'
  if (size < KBSIZE):
    strSize = '%.2f Byte' % (size)
  elif (size >= KBSIZE and size < KBSIZE**2):
    strSize = '%.2f K' % (size / KBSIZE)
  elif (size >= KBSIZE**2 and size < KBSIZE**3):
    strSize = '%.2f M' % (size / KBSIZE / KBSIZE)
  elif (size >= KBSIZE**3):
    strSize = '%.2f G' % (size / KBSIZE / KBSIZE / KBSIZE)
  return strSize
def listdir(path):
  if os.path.isfile(path):
    return '[]'
  allFiles=os.listdir(path)
  retlist=[]
  for cfile in allFiles:
    fileinfo={}
    filepath=(path+os.path.sep+cfile).replace("\\","/")
    if cfile==RECYCLED_FOLDER_NAME:
      continue
    if os.path.isdir(filepath):
      fileinfo['isfile'] = '0'
      fileinfo['size'] = getfoldersize(filepath)
    else:
      fileinfo['isfile'] = '1'
      fileinfo['size'] = os.path.getsize(filepath)
    fileinfo['name'] = cfile
    fileinfo['lastvisittime'] = dateformat( os.path.getatime(filepath) )
    fileinfo['createtime'] = dateformat( os.path.getctime(filepath) )
    fileinfo['lastmodifytime'] = dateformat( os.path.getmtime(filepath) )
    retlist.append(fileinfo)
  retStr=json.dumps(retlist,encoding='utf-8')
  return retStr
def deletefile(path):
  if os.path.exists(path):
    os.remove(path)
def rename(old,new):
  if os.path.exists(old):
    os.rename(old, new)
def checkoutfile(path):
  pass
def checkinfile(path):
  pass
def lockfile(path):
  pass
def unlockfile(path):
  pass
def createfolder(path):
  if not os.path.exists(path):
    os.mkdir(path)
def createfolders(path):
  if not os.path.exists(path):
    os.makedirs(path);
def deletefolder(path):
  if os.path.isdir(path):
    os.rmdir(path)
def retreeExceptionHandler(fun,path,excinfo):
  pass
def deletefolders(path):
#  if os.path.isdir(path):
#    os.removedirs(path)
  shutil.rmtree(path,ignore_errors=False,onerror=retreeExceptionHandler)
def movefile(old,new):
  shutil.move(old, new)
def getfoldersize(path):
  size = 0
  for root, dirs, files in os.walk(path):
    size += sum([os.path.getsize(os.path.join(root, name)) for name in files])
  return size
def searchfile(path,ext):
  returnList=glob.glob1(path, ext)
  return returnList
if __name__=='__main__':
  listdir('c:/vDriver')
  #searchfile('c:/vDriver','*.log')

上面的代码,根据方法的命名,就可以知道 python 操作文件以及文件夹的各种方法。

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python原始字符串(raw strings)用法实例
Oct 13 Python
python读取word文档的方法
May 09 Python
Python语言生成水仙花数代码示例
Dec 18 Python
浅谈Python对内存的使用(深浅拷贝)
Jan 17 Python
1 行 Python 代码快速实现 FTP 服务器
Jan 25 Python
详谈套接字中SO_REUSEPORT和SO_REUSEADDR的区别
Apr 28 Python
python traceback捕获并打印异常的方法
Aug 31 Python
对django中foreignkey的简单使用详解
Jul 28 Python
Pytorch Tensor 输出为txt和mat格式方式
Jan 03 Python
使用python实现名片管理系统
Jun 18 Python
selenium切换标签页解决get超时问题的完整代码
Aug 30 Python
python爬取企查查企业信息之selenium自动模拟登录企查查
Apr 08 Python
详解10个可以快速用Python进行数据分析的小技巧
Jun 24 #Python
python跳出双层for循环的解决方法
Jun 24 #Python
解决python xx.py文件点击完之后一闪而过的问题
Jun 24 #Python
解决python执行不输出系统命令弹框的问题
Jun 24 #Python
python实现在cmd窗口显示彩色文字
Jun 24 #Python
打包python 加icon 去掉cmd黑窗口方法
Jun 24 #Python
python隐藏终端执行cmd命令的方法
Jun 24 #Python
You might like
解析argc argv在php中的应用
2013/06/24 PHP
PHP实现的汉字拼音转换和公历农历转换类及使用示例
2014/07/01 PHP
Laravel ORM 数据model操作教程
2019/10/21 PHP
javascript编写贪吃蛇游戏
2015/07/07 Javascript
javascript类型系统 Window对象学习笔记
2016/01/07 Javascript
学习JavaScript设计模式之装饰者模式
2016/01/19 Javascript
浅谈如何实现easyui的datebox格式化
2016/06/12 Javascript
常用js,css文件统一加载方法(推荐) 并在加载之后调用回调函数
2016/09/23 Javascript
jQuery条件分页 代替离线查询(附代码)
2017/08/17 jQuery
vue 百度地图(vue-baidu-map)绘制方向箭头折线实例代码详解
2020/04/28 Javascript
vue实现移动端H5数字键盘组件使用详解
2020/08/25 Javascript
[02:51]DOTA2战队出征照拍摄花絮 TI3明星化身时尚男模
2013/07/22 DOTA
python中urlparse模块介绍与使用示例
2017/11/19 Python
快速入门python学习笔记
2017/12/06 Python
Tensorflow加载预训练模型和保存模型的实例
2018/07/27 Python
Python爬虫抓取技术的一些经验
2019/07/12 Python
Python数据分析模块pandas用法详解
2019/09/04 Python
python BlockingScheduler定时任务及其他方式的实现
2019/09/19 Python
python字典排序的方法
2019/10/12 Python
numpy按列连接两个维数不同的数组方式
2019/12/06 Python
python re模块匹配贪婪和非贪婪模式详解
2020/02/11 Python
Matplotlib中%matplotlib inline如何使用
2020/07/28 Python
HTML5新增的Css选择器、伪类介绍
2013/08/07 HTML / CSS
用html5的canvas和JavaScript创建一个绘图程序的简单实例
2016/07/06 HTML / CSS
澳大利亚在线家具、灯饰和家居装饰店:LivingStyles
2018/11/20 全球购物
西雅图的买手店:Totokaelo
2019/10/19 全球购物
Blue Nile蓝色尼罗河香港官网:世界最大在线钻石珠宝销售商
2020/05/07 全球购物
简述synchronized和java.util.concurrent.locks.Lock的异同
2014/12/08 面试题
Windows和Linux动态库应用异同
2016/04/17 面试题
买房委托公证书
2014/04/08 职场文书
继续教育个人总结
2015/03/03 职场文书
师德师风心得体会(2016精选篇)
2016/01/12 职场文书
员工试用期工作总结
2019/06/20 职场文书
小学四年级作文之人物作文
2019/11/06 职场文书
SpringCloud Alibaba项目实战之nacos-server服务搭建过程
2021/06/21 Java/Android
MySql统计函数COUNT的具体使用详解
2022/08/14 MySQL