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的框架中为MySQL实现restful接口的教程
Apr 08 Python
python检测是文件还是目录的方法
Jul 03 Python
Python如何通过subprocess调用adb命令详解
Aug 27 Python
python opencv实现切变换 不裁减图片
Jul 26 Python
Python多进程fork()函数详解
Feb 22 Python
对pyqt5之menu和action的使用详解
Jun 20 Python
使用Python获取当前工作目录和执行命令的位置
Mar 09 Python
基于django2.2连oracle11g解决版本冲突的问题
Jul 02 Python
Django REST Swagger实现指定api参数
Jul 07 Python
怎么解决pycharm license Acti的方法
Oct 28 Python
python绕过图片滑动验证码实现爬取PTA所有题目功能 附源码
Jan 06 Python
Python环境搭建过程从安装到Hello World
Feb 05 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中switch语句用法详解
2015/08/17 PHP
php将print_r处理后的数据还原为原始数组的解决方法
2016/11/02 PHP
详解Yii2 定制表单输入字段的标签和样式
2017/01/04 PHP
php 使用 __call实现重载功能示例
2019/11/18 PHP
javascript下利用arguments实现string.format函数
2010/08/24 Javascript
求数组最大最小值方法适用于任何数组
2013/08/16 Javascript
extjs4 treepanel动态改变行高度示例
2013/12/17 Javascript
jQuery Validate 验证,校验规则写在控件中的具体实例
2014/02/27 Javascript
jQuery多个input求和的实现方法
2015/02/12 Javascript
javascript中的Base64、UTF8编码与解码详解
2015/03/18 Javascript
javascript实现仿IE顶部的可关闭警告条
2015/05/05 Javascript
浅谈Javascript中Object与Function对象
2015/09/26 Javascript
关于JS中setTimeout()无法调用带参函数问题的解决方法
2016/06/21 Javascript
解析javascript图片懒加载与预加载的分析总结
2016/10/27 Javascript
微信小程序 安全包括(框架、功能模块、账户使用)详解
2017/01/16 Javascript
折叠菜单及选择器的运用
2017/02/03 Javascript
JS验证字符串功能
2017/02/22 Javascript
Javascript es7中比较实用的两个方法示例
2017/07/21 Javascript
js精确的加减乘除实例
2017/11/14 Javascript
关于在LayUI中使用AJAX提交巨坑记录
2019/10/25 Javascript
VSCode写vue项目一键生成.vue模版,修改定义其他模板的方法
2020/04/17 Javascript
[41:37]DOTA2北京网鱼队选拔赛——冲击职业之路
2015/04/13 DOTA
代码讲解Python对Windows服务进行监控
2018/02/11 Python
python版本单链表实现代码
2018/09/28 Python
python如何实现异步调用函数执行
2019/07/08 Python
Python数据可视化:泊松分布详解
2019/12/07 Python
django前端页面下拉选择框默认值设置方式
2020/08/09 Python
Python 实现3种回归模型(Linear Regression,Lasso,Ridge)的示例
2020/10/15 Python
用CSS3实现无限循环的无缝滚动的实例代码
2017/07/04 HTML / CSS
详解HTML5中ol标签的用法
2015/09/08 HTML / CSS
HTML5制作表格样式
2016/11/15 HTML / CSS
英国玛莎百货澳大利亚:Marks & Spencer Australia
2019/08/30 全球购物
教师自荐书
2013/10/08 职场文书
春季运动会广播稿大全
2014/02/19 职场文书
公务员年度考核评语
2014/12/31 职场文书
python通过opencv调用摄像头操作实例分析
2021/06/07 Python