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使用fileinput模块实现逐行读取文件的方法
Apr 29 Python
python实现下载整个ftp目录的方法
Jan 17 Python
python下载文件记录黑名单的实现代码
Oct 24 Python
python3.6 +tkinter GUI编程 实现界面化的文本处理工具(推荐)
Dec 20 Python
django配置连接数据库及原生sql语句的使用方法
Mar 03 Python
解决Python设置函数调用超时,进程卡住的问题
Aug 08 Python
python库matplotlib绘制坐标图
Oct 18 Python
pytorch 状态字典:state_dict使用详解
Jan 17 Python
学生如何注册Pycharm专业版以及pycharm的安装
Sep 24 Python
Python3.9最新版下载与安装图文教程详解(Windows系统为例)
Nov 28 Python
Python基于百度AI实现抓取表情包
Jun 27 Python
使用python求解迷宫问题的三种实现方法
Mar 17 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 字符串编码截取函数(兼容utf-8和gb2312)
2009/05/02 PHP
Smarty Foreach 使用说明
2010/03/23 PHP
php中实现xml与mysql数据相互转换的方法
2014/12/25 PHP
学习php设计模式 php实现策略模式(strategy)
2015/12/07 PHP
PHP 匿名函数与注意事项详细介绍
2016/11/26 PHP
ThinkPHP框架分布式数据库连接方法详解
2017/03/14 PHP
thinkPHP5.0框架引入Traits功能实例分析
2017/03/18 PHP
PHP迭代与递归实现无限级分类
2017/08/28 PHP
Locate a File Using a File Open Dialog Box
2007/06/18 Javascript
jquery插件冲突(jquery.noconflict)解决方法分享
2014/03/20 Javascript
JavaScript中的prototype.bind()方法介绍
2014/04/04 Javascript
javascript中字符串拼接详解
2014/09/26 Javascript
jQuery里filter()函数与find()函数用法分析
2015/06/24 Javascript
JavaScript 对象深入学习总结(经典)
2015/09/29 Javascript
jQuery Ajax 实例代码 ($.ajax、$.post、$.get)
2016/04/29 Javascript
Bootstrap实现水平排列的表单
2016/07/04 Javascript
nodejs和php实现图片访问实时处理
2017/01/05 NodeJs
Javascript DOM事件操作小结(监听鼠标点击、释放,悬停、离开等)
2017/01/20 Javascript
Vue2.0 实现歌手列表滚动及右侧快速入口功能
2018/08/08 Javascript
详解Vue开发微信H5微信分享签名失败问题解决方案
2018/08/09 Javascript
python 判断自定义对象类型
2009/03/21 Python
django组合搜索实现过程详解(附代码)
2019/08/06 Python
Keras设定GPU使用内存大小方式(Tensorflow backend)
2020/05/22 Python
pip已经安装好第三方库但pycharm中import时还是标红的解决方案
2020/10/09 Python
Pycharm安装python库的方法
2020/11/24 Python
新闻编辑自荐信
2013/11/03 职场文书
培训主管岗位职责
2014/02/01 职场文书
孝敬父母的活动方案
2014/08/28 职场文书
2014高中生入党思想汇报范文
2014/09/13 职场文书
股东授权委托书范文
2014/09/13 职场文书
详细的本科生职业生涯规划范文
2014/09/16 职场文书
教师四风问题整改措施
2014/09/25 职场文书
罗马假日观后感
2015/06/08 职场文书
Python实战之用tkinter库做一个鼠标模拟点击器
2021/04/27 Python
Python爬虫进阶之Beautiful Soup库详解
2021/04/29 Python
Python Pandas常用函数方法总结
2021/06/15 Python