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使用socket远程连接错误处理方法
Apr 29 Python
解析Python编程中的包结构
Oct 25 Python
Python字符串拼接、截取及替换方法总结分析
Apr 13 Python
Python中表达式x += y和x = x+y 的区别详解
Jun 20 Python
python实现的MySQL增删改查操作实例小结
Dec 19 Python
利用pyuic5将ui文件转换为py文件的方法
Jun 19 Python
基于tensorflow指定GPU运行及GPU资源分配的几种方式小结
Feb 03 Python
python 使用while循环输出*组成的菱形实例
Apr 12 Python
如何对python的字典进行排序
Jun 19 Python
Python如何给你的程序做性能测试
Jul 29 Python
通俗讲解python 装饰器
Sep 07 Python
浅谈python 类方法/静态方法
Sep 18 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 中的输出缓冲
2006/12/21 PHP
PHP数组交集的优化代码分析
2011/03/06 PHP
Thinkphp中的curd应用实用要点
2015/01/04 PHP
PHP中的多种加密技术及代码示例解析
2016/10/20 PHP
php使用file函数、fseek函数读取大文件效率对比分析
2016/11/04 PHP
php根据用户名和手机号查询是否存在手机号码
2017/02/16 PHP
常用参考资料(手册)下载或者链接
2006/07/22 Javascript
默认让页面的第一个控件选中的javascript代码
2009/12/26 Javascript
JS实现状态栏跑马灯文字效果代码
2015/10/24 Javascript
使用getBoundingClientRect方法实现简洁的sticky组件的方法
2016/03/22 Javascript
angularjs实现文字上下无缝滚动特效代码
2016/09/04 Javascript
Bootstrap Table的使用总结
2016/10/08 Javascript
jQuery实现淡入淡出的模态框
2017/02/09 Javascript
JavaScript实现简单的星星评分效果
2017/05/18 Javascript
zTree获取当前节点的下一级子节点数实例
2017/09/05 Javascript
setTimeout时间设置为0详细解析
2018/03/13 Javascript
基于vue中keep-alive缓存问题的解决方法
2018/09/21 Javascript
原生JS实现简单的无缝自动轮播效果
2018/09/26 Javascript
微信小程序时间控件picker view使用详解
2018/12/28 Javascript
vue动态绘制四分之三圆环图效果
2019/09/03 Javascript
python3.3实现乘法表示例
2014/02/07 Python
Python抓取京东图书评论数据
2014/08/31 Python
Python使用random和tertools模块解一些经典概率问题
2015/01/28 Python
Python中random模块生成随机数详解
2016/03/10 Python
Python实现统计代码行的方法分析
2017/07/12 Python
PyQt5每天必学之创建窗口居中效果
2018/04/19 Python
python不相等的两个字符串的 if 条件判断为True详解
2020/03/12 Python
快速解决jupyter启动卡死的问题
2020/04/10 Python
python有几个版本
2020/06/17 Python
Python更改pip镜像源的方法示例
2020/12/01 Python
浅析Python 中的 WSGI 接口和 WSGI 服务的运行
2020/12/09 Python
Html5页面点击遮罩层背景关闭遮罩层
2020/11/30 HTML / CSS
澳洲的服装老品牌:SABA
2018/02/06 全球购物
DataReader和DataSet的异同
2014/12/31 面试题
YII2 全局异常处理深入讲解
2021/03/24 PHP
物控部经理职务说明书
2014/02/25 职场文书