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+微信接口实现运维报警
Aug 27 Python
python中requests爬去网页内容出现乱码问题解决方法介绍
Oct 25 Python
Python设计模式之门面模式简单示例
Jan 09 Python
Pycharm 操作Django Model的简单运用方法
May 23 Python
Python判断一个list中是否包含另一个list全部元素的方法分析
Dec 24 Python
Python小白必备的8个最常用的内置函数(推荐)
Apr 03 Python
PyTorch: 梯度下降及反向传播的实例详解
Aug 20 Python
Django之choices选项和富文本编辑器的使用详解
Apr 01 Python
python list等分并从等分的子集中随机选取一个数
Nov 16 Python
Django解决frame拒绝问题的方法
Dec 18 Python
上帝为你开了一扇窗之Tkinter常用函数详解
Jun 02 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
Blitz templates 最快的PHP模板引擎
2010/04/06 PHP
linux iconv方法的使用
2011/10/01 PHP
PHP之生成GIF动画的实现方法
2013/06/07 PHP
php实现可用于mysql,mssql,pg数据库操作类
2014/12/13 PHP
PHP判断网络文件是否存在的方法
2015/03/12 PHP
PHP中子类重载父类的方法【parent::方法名】
2016/05/06 PHP
ThinkPHP3.2框架使用addAll()批量插入数据的方法
2017/03/16 PHP
防止页面被iframe(兼容IE,Firefox火狐)
2010/07/04 Javascript
jQuery News Ticker 基于jQuery的即时新闻行情展示插件
2011/11/05 Javascript
javascript操作JSON的要领总结
2012/12/09 Javascript
js动态给table添加/删除tr的方法
2013/08/02 Javascript
JS 实现导航栏悬停效果(续)
2013/09/24 Javascript
jQuery使用fadeout实现元素渐隐效果的方法
2015/03/27 Javascript
Javascript简单实现面向对象编程继承实例代码
2015/11/27 Javascript
bootstrap Validator 模态框、jsp、表单验证 Ajax提交功能
2017/02/17 Javascript
JS实现点击掉落特效
2021/01/29 Javascript
[28:07]完美世界DOTA2联赛PWL S3 Phoenix vs INK ICE 第二场 12.13
2020/12/17 DOTA
Python设计模式之简单工厂模式实例详解
2019/01/22 Python
Python应用领域和就业形势分析总结
2019/05/14 Python
在Pycharm中调试Django项目程序的操作方法
2019/07/17 Python
解决django中ModelForm多表单组合的问题
2019/07/18 Python
Python2与Python3的区别点整理
2019/12/12 Python
Django多层嵌套ManyToMany字段ORM操作详解
2020/05/19 Python
pandas针对excel处理的实现
2021/01/15 Python
HTML5 canvas基本绘图之绘制曲线
2016/06/27 HTML / CSS
美国踏板车和轻便摩托车销售网站:Mega Motor Madness
2020/02/26 全球购物
俄罗斯达美乐比萨外送服务:Domino’s Pizza
2020/12/18 全球购物
土木工程个人自荐信范文
2013/11/30 职场文书
小学“向国旗敬礼”网上签名寄语活动总结
2014/09/27 职场文书
班主任2015新年寄语
2014/12/08 职场文书
工程资料员岗位职责
2015/04/13 职场文书
故意杀人罪辩护词
2015/05/21 职场文书
写作技巧:优秀文案必备的3种结构
2019/08/19 职场文书
mysql知识点整理
2021/04/05 MySQL
详解jQuery的核心函数和事件处理
2022/02/18 jQuery
windows server2008 开启端口的实现方法
2022/06/25 Servers