python文件及目录操作

读/写文件

新建/打开文件 写入

  1. #举个例子,打开D:\test\data.txt
  2. #以写入模式打开文件
  3. #如果test(上级目录)不存在则报错
  4. #如果data.txt(文件)不存在则创建
  5. fd = open('filename','w')
  6. #如果文件里面已经有内容,那么内容会被清空
  7. fd.write('stirng')
  8. fd.close()

打开文件 读入

  1. #举个例子,打开D:\test\data.txt
  2. #以读入模式打开文件
  3. #如果test(上级目录)不存在则报错
  4. #如果data.txt(文件)不存在则报错
  5. fd = open('filename','r')
  6. #read不传入参数,那么会读取整个文件
  7. content = fd.read()
  8. fd.close()

注意: open第一个参数如果是字符串常量(手工输入)的话,那么会在工作目录中查找,但是,如果传入的是一个字符串变量的话,该字符串需要是该文件的绝对路径

目录操作

新建目录

  1. #例子,当前工作目录C:\test test目录下src以及其之下的子目录python都不存在
  2. #dirname C:\test\src\python
  3. makedirs(C:\test\src\python) #或者 makedirs(dirname)
  4. #第一参数如果是字符串常量,那么会在工作目录中创建,但是如果是一个字符串变量,那么会生成该绝对路径(沿途不存在的路径也会创建)
  5. #python会把以'\'分割的最后一串字符串(python)视为目录
  6. #如果该目录已存在,那么会报错
  7. #可提前判断一下是否存在该目录
  8. os.path.exists('C:\test\src\python')

浏览目录

方式1

  1. import os
  2. #列出指定目录下的所有文件
  3. #files 里面既包含文件名也包含目录名
  4. files_and_dirs = os.listdir(dir)
  5. #一般来说会用一个for循环来逐个判断
  6. for name in files_and_dirs:
  7. #所以需要判断是文件还是目录,以便执行不同的操作
  8. #是否是目录
  9. #如果要遍历该路径下所有文件/目录,可以使用递归
  10. os.path.isdir(files_and_dirs)
  11. 是否是文件
  12. os.path.isfile(files_and_dirs)

方式2

可以直接获得所有信息,不需要手动判断

  1. for root, dirs, files in os.walk(file_dir):
  2. print(root) #当前目录路径
  3. print(dirs) #当前路径下所有子目录
  4. print(files) #当前路径下所有非目录子文件

正则表达式

  1. import re

这里,有关正则表达式的语法在此不多讲,主要讲如何在python中调用正则

明确使用正则的目的

查找字符串

  1. #例子
  2. source = """![1573180919937](C:\\typora-user-images\\1573180919937.png)"""
  3. #模式串
  4. pat = r'!\[(.+)\]\((.+)\)'
  5. #match只匹配source字符串开头,如果前面部分无法匹配,那么就直接返回了
  6. #search会匹配完整个source
  7. mat_res = re.search(pat,source)
  8. if mat_res:
  9. print mat_res.group()
  10. print mat_res.group(1)
  11. print mat_res.group(2) #这里的group需要在pat中使用`()`捕获,如果没有捕获到那么调用时会报错

注意:

  • 如果有多个group匹配到,那么只会返回最后的一个

替换字符串

方式1:直接替换,new_str与上一次匹配的结果无关

  1. new_source = source.replace(mat_res.group(1),new_str)

方式2:利用正则特性,匹配时替换,这使得在替换的过程中可以使用上一次匹配到的结果

  1. >>> def dashrepl(matchobj):
  2. ... if matchobj.group(0) == '-': return ' '
  3. ... else: return '-'
  4. #如果是'-'那么就变成空格,如果是两个'-'那么就变成一个'-'
  5. >>> re.sub('-{1,2}', dashrepl, 'pro----gram-files')
  6. 'pro--gram files'
  7. #当然,也支持直接替换
  8. >>> re.sub(r'\sAND\s', ' & ', 'Baked Beans And Spam', flags=re.IGNORECASE)
  9. 'Baked Beans & Spam'

python文件及目录操作的更多相关文章

  1. python 文件和目录操作题库

    1. 把一个目录下所有的文件删除,在所有的目录下新建一个a.txt的文件,并在文件下写入"python"关键字.   解题思路:        1.如果目录存在则切换进入目录    ...

  2. python 文件及目录操作

    文件的基本操作 >>> import os #文件操作导入的模块 >>> import os.path >>> os.name #操作系统的类型, ...

  3. Python 文件和目录操作学习

    文件与文件路径 文件有两个关键属性:文件名和路径. 路径指明了文件在计算机上的位置. 文件名中,最后一个句点之后的部分称为文件的"扩展名",它指出了文件的类型 目录也叫文件夹,文件 ...

  4. Python文件或目录操作的常用函数

    ◆ os.listdir(path) Return a list containing the names of the entries in the directory given by path. ...

  5. Python::OS 模块 -- 文件和目录操作

    os模块的简介参看 Python::OS 模块 -- 简介 os模块的进程管理 Python::OS 模块 -- 进程管理 os模块的进程参数 Python::OS 模块 -- 进程参数 os模块中包 ...

  6. Python之文件与目录操作及压缩模块(os、shutil、zipfile、tarfile)

    Python中可以用于对文件和目录进行操作的内置模块包括: 模块/函数名称 功能描述 open()函数 文件读取或写入 os.path模块 文件路径操作 os模块 文件和目录简单操作 zipfile模 ...

  7. 【转】Python之文件与目录操作(os、zipfile、tarfile、shutil)

    [转]Python之文件与目录操作(os.zipfile.tarfile.shutil) Python中可以用于对文件和目录进行操作的内置模块包括: 模块/函数名称 功能描述 open()函数 文件读 ...

  8. Python之文件与目录操作(os、zipfile、tarfile、shutil)

    Python中可以用于对文件和目录进行操作的内置模块包括: 模块/函数名称 功能描述 open()函数 文件读取或写入 os.path模块 文件路径操作 os模块 文件和目录简单操作 zipfile模 ...

  9. Python中的文件和目录操作实现

    Python中的文件和目录操作实现 对于文件和目录的处理,虽然可以通过操作系统命令来完成,但是Python语言为了便于开发人员以编程的方式处理相关工作,提供了许多处理文件和目录的内置函数.重要的是,这 ...

随机推荐

  1. 2019-8-31-PowerShell-通过-WMI-获取系统服务

    title author date CreateTime categories PowerShell 通过 WMI 获取系统服务 lindexi 2019-08-31 16:55:58 +0800 2 ...

  2. js后端返回一个时间戳,用原生怎么对时间进行格式化?

    function fn(time) { var date = new Date(time); var len = time.toString().length; // 时间戳不足13位则在后面加零 i ...

  3. Python--day67--CBV和FBV、Request对象及上传文件示例

    1,CBV版添加新的出版社 views.py文件 urls.py文件 2,Request对象: request对象 当一个页面被请求时,Django就会创建一个包含本次请求原信息的HttpReques ...

  4. [转载] 虚拟机3种网络模式(NAT, Host-only, Bridged)

    实例讲解虚拟机3种网络模式(桥接.nat.Host-only) 转载自:http://www.cnblogs.com/ggjucheng/archive/2012/08/19/2646007.html ...

  5. UVA 11992 ——线段树(区间修改)

    解题思路: 将矩阵每一行建立一棵线段树,进而变成一维问题求解.注意数组要开 4*N 代码如下: #include <iostream> #include <cstdio> #i ...

  6. vue-cli起项目步骤

    1.全局安装 vue-cli 老版本:npm install -g vue-cli  (npm uninstall vue-cli -g 卸载) 新版本:npm install -g @vue/cli ...

  7. H3C 指定下次启动加载的应用程序文件

  8. linux alloc_pages 接口

    为完整起见, 我们介绍另一个内存分配的接口, 尽管我们不会准备使用它直到 15 章. 现 在, 能够说 struct page 是一个描述一个内存页的内部内核结构. 如同我们将见到的, 在内核中有许多 ...

  9. centos 利用mailx发送邮件

    这里就已163或者126邮箱为例!阿里云的25号端口好像发送不了,用465端口可以发送成功! 安装:yum install -y mailx 然后就是修改配置文件 set ssl-verify=ign ...

  10. CString 的成员函数详解

    CSTRING的成员函数详解   typedef ATL::CStringT< TCHAR, StrTraitMFC_DLL< TCHAR > > CString;CStrin ...