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 相关文章推荐
pygame学习笔记(3):运动速率、时间、事件、文字
Apr 15 Python
python selenium 获取标签的属性值、内容、状态方法
Jun 22 Python
详解python中的装饰器
Jul 10 Python
Python中反射和描述器总结
Sep 23 Python
详解如何为eclipse安装合适版本的python插件pydev
Nov 04 Python
学生信息管理系统Python面向对象版
Jan 30 Python
Python 保持登录状态进行接口测试的方法示例
Aug 06 Python
在Python中画图(基于Jupyter notebook的魔法函数)
Oct 28 Python
解决Python列表字符不区分大小写的问题
Dec 19 Python
pyqt5 QlistView列表显示的实现示例
Mar 24 Python
使用keras框架cnn+ctc_loss识别不定长字符图片操作
Jun 29 Python
Python使用内置函数setattr设置对象的属性值
Oct 16 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把MSSQL数据导入到MYSQL的方法
2014/12/27 PHP
用javascript连接access数据库的方法
2006/11/17 Javascript
讨论javascript(一)工厂方式 js面象对象的定义方法
2009/12/15 Javascript
Javascript中获取出错代码所在文件及行数的代码
2010/09/23 Javascript
关于jquery.validate1.9.0前台验证的使用介绍
2013/04/26 Javascript
文本框文本自动补全效果示例分享
2014/01/19 Javascript
javascript定义变量时有var和没有var的区别探讨
2014/07/21 Javascript
Javascript实现网络监测的方法
2015/07/31 Javascript
为什么JavaScript没有块级作用域
2016/05/22 Javascript
jquery实现多次上传同一张图片
2017/01/09 Javascript
基于js粘贴事件paste简单解析以及遇到的坑
2017/09/07 Javascript
关闭Vue计算属性自带的缓存功能方法
2018/03/02 Javascript
js前端如何写一个精确的倒计时代码
2019/10/25 Javascript
原生JS实现音乐播放器的示例代码
2021/02/25 Javascript
让 python 命令行也可以自动补全
2014/11/30 Python
python 拷贝特定后缀名文件,并保留原始目录结构的实例
2018/04/27 Python
使用 Python 实现简单的 switch/case 语句的方法
2018/09/17 Python
python获取服务器响应cookie的实例
2018/12/28 Python
Python for循环与getitem的关系详解
2020/01/02 Python
python shell命令行中import多层目录下的模块操作
2020/03/09 Python
python使用梯度下降和牛顿法寻找Rosenbrock函数最小值实例
2020/04/02 Python
python和php学习哪个更有发展
2020/06/17 Python
美国第一香水网站:Perfume.com
2017/01/23 全球购物
Zatchels官网:英国剑桥包品牌
2021/01/12 全球购物
JAVA代码查错题
2014/10/10 面试题
表彰大会策划方案
2014/05/13 职场文书
教师考察材料范文
2014/06/03 职场文书
质量月活动总结
2014/08/26 职场文书
协商一致解除劳动合同协议书
2014/09/14 职场文书
教师个人年终总结
2015/02/11 职场文书
违规违纪检讨书范文
2015/05/06 职场文书
用人单位聘用意向书
2015/05/11 职场文书
公司酒会主持词
2015/07/02 职场文书
《一面五星红旗》教学反思
2016/02/23 职场文书
mysql的MVCC多版本并发控制的实现
2021/04/14 MySQL
js面向对象编程OOP及函数式编程FP区别
2022/07/07 Javascript