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中获取对象信息的方法
Apr 27 Python
Python中用sleep()方法操作时间的教程
May 22 Python
Python lxml模块安装教程
Jun 02 Python
机器学习的框架偏向于Python的13个原因
Dec 07 Python
Python爬取成语接龙类网站
Oct 19 Python
Python图像处理之直线和曲线的拟合与绘制【curve_fit()应用】
Dec 26 Python
python实现批量修改服务器密码的方法
Aug 13 Python
django项目用higcharts统计最近七天文章点击量
Aug 17 Python
详解查看Python解释器路径的两种方式
Oct 15 Python
python使用ctypes库调用DLL动态链接库
Oct 22 Python
python 多进程和协程配合使用写入数据
Oct 30 Python
Selenium执行完毕未关闭chromedriver/geckodriver进程的解决办法(java版+python版)
Dec 07 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
php中stdClass的用法分析
2015/02/27 PHP
常用Extjs工具:Extjs.util.Format使用方法
2012/03/22 Javascript
div失去焦点事件实现思路
2014/04/22 Javascript
nodejs开发环境配置与使用
2014/11/17 NodeJs
纯javascript制作日历控件
2015/07/17 Javascript
js调用百度地图及调用百度地图的搜索功能
2015/09/07 Javascript
jquery中cookie用法实例详解(获取,存储,删除等)
2016/01/04 Javascript
基于JS实现导航条flash导航条
2016/06/17 Javascript
smartupload实现文件上传时获取表单数据(推荐)
2016/12/12 Javascript
微信小程序 wx.uploadFile无法上传解决办法
2016/12/14 Javascript
jQuery操作json常用方法示例
2017/01/04 Javascript
JS实现的简单表单验证功能完整实例
2017/10/14 Javascript
vue-infinite-loading2.0 中文文档详解
2018/04/08 Javascript
JavaScript学习笔记之图片库案例分析
2019/01/08 Javascript
浅析TypeScript 命名空间
2020/03/19 Javascript
浅谈Vue3 Composition API如何替换Vue Mixins
2020/04/29 Javascript
vue 项目引入echarts 添加点击事件操作
2020/09/09 Javascript
[01:11:37]完美世界DOTA2联赛PWL S2 SZ vs FTD.C 第一场 11.19
2020/11/19 DOTA
理解Python中的类与实例
2015/04/27 Python
Python使用设计模式中的责任链模式与迭代器模式的示例
2016/03/02 Python
Python实现列表转换成字典数据结构的方法
2016/03/11 Python
对Python中实现两个数的值交换的集中方法详解
2019/01/11 Python
详解python中的线程与线程池
2019/05/10 Python
Python实现随机取一个矩阵数组的某几行
2019/11/26 Python
python词云库wordCloud使用方法详解(解决中文乱码)
2020/02/17 Python
详解Python的爬虫框架 Scrapy
2020/08/03 Python
领先的钻石和订婚戒指零售商:Diamonds-USA
2016/12/11 全球购物
威尔逊皮革:Wilsons Leather
2018/12/07 全球购物
Nordgreen台湾官网:极简北欧设计手表
2019/08/21 全球购物
中药学专业毕业生推荐信
2014/07/10 职场文书
公司委托书格式
2014/08/01 职场文书
学习党代会心得体会
2014/09/05 职场文书
2014年国庆节庆祝建国65周年比赛演讲稿
2014/09/21 职场文书
2015年保育员个人工作总结
2015/05/13 职场文书
护士岗前培训心得体会
2016/01/08 职场文书
Python函数式编程中itertools模块详解
2021/09/15 Python