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解析html开发库pyquery使用方法
Feb 07 Python
Python对小数进行除法运算的正确方法示例
Aug 25 Python
Python 给某个文件名添加时间戳的方法
Oct 16 Python
python 检查文件mime类型的方法
Dec 08 Python
selenium+python自动化测试之多窗口切换
Jan 23 Python
Django获取应用下的所有models的例子
Aug 30 Python
Django之富文本(获取内容,设置内容方式)
May 21 Python
python--shutil移动文件到另一个路径的操作
Jul 13 Python
10个python爬虫入门实例(小结)
Nov 01 Python
Python远程linux执行命令实现
Nov 11 Python
python 提取html文本的方法
May 20 Python
教你用python实现一个无界面的小型图书管理系统
May 21 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
JS与PHP向函数传递可变参数的区别实例代码
2011/05/18 PHP
如何使用php输出时间格式
2013/08/31 PHP
php中引用符号(&amp;)的使用详解
2013/11/13 PHP
PHP编程获取音频文件时长的方法【基于getid3类】
2017/04/20 PHP
PHP实现电商订单自动确认收货redis队列
2017/05/17 PHP
PHP中TP5 上传文件的实例详解
2017/07/31 PHP
在Laravel5.6中使用Swoole的协程数据库查询
2018/06/15 PHP
PHP利用递归函数实现无限级分类的方法
2019/03/22 PHP
jquery下操作HTML控件的实现代码
2010/01/12 Javascript
JavaScript 基础篇(一)
2012/03/30 Javascript
Jquery同辈元素选中/未选中效果的实例代码
2013/08/01 Javascript
JavaScript获取客户端计算机硬件及系统等信息的方法
2014/01/02 Javascript
jquery对象和javascript对象即DOM对象相互转换
2014/08/07 Javascript
jQuery实现仿美橙互联两级导航菜单的方法
2015/03/09 Javascript
javascript中的后退和刷新实现方法
2016/11/10 Javascript
Vue父子传递实例讲解
2020/02/14 Javascript
详解ES6中class的实现原理
2020/10/03 Javascript
vue项目实现减少app.js和vender.js的体积操作
2020/11/12 Javascript
[02:19]DOTA2上海特级锦标赛 观赛指南 Spectator Guide
2016/02/04 DOTA
pycharm 使用心得(四)显示行号
2014/06/05 Python
详解python3百度指数抓取实例
2016/12/12 Python
SQLite3中文编码 Python的实现
2017/01/11 Python
python实时分析日志的一个小脚本分享
2017/05/07 Python
python django 增删改查操作 数据库Mysql
2017/07/27 Python
Python 多核并行计算的示例代码
2017/11/07 Python
Python数据处理篇之Sympy系列(五)---解方程
2019/10/12 Python
opencv3/Python 稠密光流calcOpticalFlowFarneback详解
2019/12/11 Python
python中的django是做什么的
2020/07/31 Python
小学生元旦广播稿
2014/02/21 职场文书
团日活动总结范文
2014/04/25 职场文书
干部个人考察材料
2014/12/24 职场文书
募捐感谢信
2015/01/22 职场文书
2015年教研员工作总结
2015/05/26 职场文书
家属联谊会致辞
2015/07/31 职场文书
vue postcss-px2rem 自适应布局
2022/05/15 Vue.js
Mybatis 一级缓存和二级缓存原理区别
2022/09/23 Java/Android