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线程
Feb 26 Python
快速入门python学习笔记
Dec 06 Python
python实现判断一个字符串是否是合法IP地址的示例
Jun 04 Python
python实现自动登录后台管理系统
Oct 18 Python
详解如何用django实现redirect的几种方法总结
Nov 22 Python
Python中类的创建和实例化操作示例
Feb 27 Python
Python使用matplotlib实现交换式图形显示功能示例
Sep 06 Python
Python 进程操作之进程间通过队列共享数据,队列Queue简单示例
Oct 11 Python
实现Python与STM32通信方式
Dec 18 Python
pytorch sampler对数据进行采样的实现
Dec 31 Python
flask框架自定义url转换器操作详解
Jan 25 Python
python中的socket实现ftp客户端和服务器收发文件及md5加密文件
Apr 01 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/10/09 PHP
PHP读写文件的方法(生成HTML)
2006/11/27 PHP
php中比较简单的导入phpmyadmin生成的sql文件的方法
2011/06/28 PHP
深入phpMyAdmin的安装与配置的详细步骤
2013/05/07 PHP
php网页病毒清除类
2014/12/08 PHP
PHP信号量基本用法实例详解
2016/02/12 PHP
PHP实现将优酷土豆腾讯视频html地址转换成flash swf地址的方法
2017/08/04 PHP
PHP DB 数据库连接类定义与用法示例
2019/03/11 PHP
passwordStrength 基于jquery的密码强度检测代码使用介绍
2011/10/08 Javascript
谈谈Vue.js——vue-resource全攻略
2017/01/16 Javascript
webpack学习笔记之代码分割和按需加载的实例详解
2017/07/20 Javascript
JS按条件 serialize() 对应标签的使用方法
2017/07/24 Javascript
详解JavaScript按概率随机生成事件
2017/08/02 Javascript
node.js基于express使用websocket的方法
2017/11/09 Javascript
js原生方法被覆盖,从新赋值原生的方法
2018/01/02 Javascript
详解async/await 异步应用的常用场景
2019/05/13 Javascript
JS实现页面数据懒加载
2020/02/13 Javascript
javascript实现的图片预览和上传功能示例【兼容IE 9】
2020/05/01 Javascript
如何在selenium中使用js实现定位
2020/08/18 Javascript
将Python代码打包为jar软件的简单方法
2015/08/04 Python
python:socket传输大文件示例
2017/01/18 Python
windows环境下tensorflow安装过程详解
2018/03/30 Python
DJango的创建和使用详解(默认数据库sqlite3)
2019/11/18 Python
解析python 类方法、对象方法、静态方法
2020/08/15 Python
安全教育心得体会
2013/12/29 职场文书
优秀教师主要事迹
2014/02/01 职场文书
作文批改评语大全
2014/04/23 职场文书
诚信贷款承诺书
2014/05/30 职场文书
财务负责人任命书
2014/06/06 职场文书
班级口号大全
2014/06/09 职场文书
119消防日活动总结
2014/08/29 职场文书
暑假学习心得体会
2014/09/02 职场文书
二十年同学聚会感言
2015/07/30 职场文书
大学开学感言
2015/08/01 职场文书
2016高考寄语或鼓励的话语
2015/12/04 职场文书
MySQL 开窗函数
2022/02/15 MySQL