python操作文件和目录查看、创建、删除、复制
python内置了os模块可以直接调用操作系统提供的接口函数,os.name查询的是操作系统,‘nt’表示windows系统
>>> import os
>>> os.name
'nt'
使用os.environ查看环境变量:
>>> os.environ
environ({'ADSK_3DSMAX_X64_2014':AppData\\Roaming', ……})
还可以获得某个具体的环境变量的值:
>>> os.environ.get('path')
'C:\\ProgramData\\Oracle\\Java\\ja……'
>>> os.environ.get('haha','nice') #如果没有指定的环境变量,则返回指定的值
'nice'
查看当前目录的绝对路径:
>>> os.path.abspath('.')
'C:\\Users\\WC'
在某个目录下面创建新目录,需要两个步骤:先join(合成路径),再mkdir()创建
>>> os.path.join('E:\Python3.6.3\workspace','测试文件夹')
'E:\\Python3.6.3\\workspace\\测试文件夹'
>>> os.mkdir('E:\\Python3.6.3\\workspace\\测试文件夹')
删除目录:
>>> os.rmdir('E:\\Python3.6.3\\workspace\\测试文件夹')
拆分目录或者文件的路径,拆分结果分为两部分,后一部分总是最后级别的目录或者文件名:
>>> os.path.split('E:\Python3.6.3\workspace\err.py')
('E:\\Python3.6.3\\workspace', 'err.py')
>>> os.path.split('E:\Python3.6.3\workspace')
('E:\\Python3.6.3', 'workspace')
获得文件扩展名,返回的是一个list:
>>> os.path.splitext('E:\Python3.6.3\workspace\err.py')
('E:\\Python3.6.3\\workspace\\err', '.py')
重命名:
>>> os.rename('E:\\Python3.6.3\\workspace\\err.py','E:\\Python3.6.3\\workspace\\reerr.py')
切换目录:
>>> os.chdir('E:\\Python3.6.3\\workspace\\')
>>> os.path.abspath('.')
'E:\\Python3.6.3\\workspace'
复制文件,需要使用python中高级的文件操作模块shutil。shutil.copy(s,d)可以实现文件复制功能,s,d都是字符串格式,s表示源文件,d表示目的文件或者目录,当d是文件名时,它会被用来当做复制后的文件名称,效果相当于 复制 +重命名:
>>> import shutil
>>> import os
>>> shutil.copy('first.py','E:\Python3.6.3\workspace\备份')
'E:\\Python3.6.3\\workspace\\备份\\first.py'
>>> shutil.copy('first.py','E:\\Python3.6.3\\workspace\\备份\\first_copy.py')
'E:\\Python3.6.3\\workspace\\备份\\first_copy.py'
(以上注意的是,当重命名一个文件的时候,windows下的目录路径要使用\\代替\)
复制文件的内容:
>>> shutil.copyfile('E:\\Python3.6.3\\workspace\\备份\\first.py','E:\\Python3.6.3\\workspace\\备份\\first_copy.py')
'E:\\Python3.6.3\\workspace\\备份\\first_copy.py'
判断对象是不是目录\文件:
>>> os.path.isdir('E:\Python3.6.3\workspace\first.py')
False
>>> os.path.isdir('E:\Python3.6.3\workspace')
True
>>> os.path.isfile('E:\Python3.6.3\workspace\hello.py')
True
>>> os.path.isfile('E:\Python3.6.3\workspace')
Fals
练习:列举指定目录下包括子目录中所有的包含指定字符串的文件
>>> import os
>>> def searchStr(d,str):
... for i in os.listdir(d):
... sd = os.path.join(os.path.abspath(d),i)
... if str in i:
... print(sd)
... if os.path.isdir(sd):
... searchStr(sd,str)
...
>>> searchStr('E:\Python3.6.3\workspace','f')
E:\Python3.6.3\workspace\err_logginginfo.py
E:\Python3.6.3\workspace\first.py
E:\Python3.6.3\workspace\备份\first.py
E:\Python3.6.3\workspace\备份\first_copy.py
python操作文件和目录查看、创建、删除、复制的更多相关文章
- Python操作文件和目录
Python操作文件和目录 读写文件比较简单,有一点特别注意就好了 windows下Python默认打开的文件以gbk解码,而一般我们的文件是utf-8编码的,所以如果文本含有中文,就会出现异常或者乱 ...
- 【Python】[IO编程]文件读写,StringIO和BytesIO,操作文件和目录,序列化
IO在计算机中指Input/Output,也就是输入和输出. 1.文件读写,1,读文件[使用Python内置函数,open,传入文件名标示符] >>> f = open('/User ...
- Python之IO编程——文件读写、StringIO/BytesIO、操作文件和目录、序列化
IO编程 IO在计算机中指Input/Output,也就是输入和输出.由于程序和运行时数据是在内存中驻留,由CPU这个超快的计算核心来执行,涉及到数据交换的地方,通常是磁盘.网络等,就需要IO接口.从 ...
- 【转】Python之文件与目录操作(os、zipfile、tarfile、shutil)
[转]Python之文件与目录操作(os.zipfile.tarfile.shutil) Python中可以用于对文件和目录进行操作的内置模块包括: 模块/函数名称 功能描述 open()函数 文件读 ...
- Python学习笔记(二十五)操作文件和目录
摘抄:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014319253241 ...
- python学习笔记 操作文件和目录
如果我们要操作文件.目录,可以在命令行下面输入操作系统提供的各种命令来完成.比如dir.cp等命令. 如果要在Python程序中执行这些目录和文件的操作怎么办?其实操作系统提供的命令只是简单地调用了操 ...
- python的I/O编程:文件打开、操作文件和目录、序列化操作
1 文件读写 1.1 打开文件: open(r'D:\text.txt') 1.2 文件模式 值 功能描述 'r' 读模式 'w' 写模式 'a' 追加模式 'b' 二进制模式 '+' 读写模式 1. ...
- IO编程、操作文件或目录、序列化、JSON
IO中指Input/Output,即输入和输出:涉及到数据交换的地方,通常是磁盘.网络等,就需要IO接口 1.由于CPU和内存的速度远远高于外设的速度,所以,在IO编程中,存在速度严重不匹配问题.eg ...
- Python3 IO编程之操作文件和目录
如果我们要操作文件,目录,可以在命令行下面输入操作系统提供的各种命令来完成.比如ls,cp等命令 如果要在python程序中执行这些目录和文件的操作怎么办?其实操作系统提供的命令指示简单地调用了操作系 ...
随机推荐
- 使用WireMock进行更好的集成测试
无论您是遵循传统的测试金字塔还是采用诸如"测试蜂窝"这样的较新方法,都应该在开发过程中的某个时候开始编写集成测试用例. 您可以编写不同类型的集成测试.从持久性测试开始,您可以检查组 ...
- VLAN实验4(在eNSP上利用单臂路由实现VLAN间路由)
原理概述: 以太网中,通常会使用VLAN技术隔离二层广播域来减少广播的影响*并增强 网络的安全性和可管理性.其缺点足同时也严格地隔离了不同VLAN之间的任何二层流量,使分属于不同VLAN的用户 不能直 ...
- Educational Codeforces Round 34 (Rated for Div. 2) A B C D
Educational Codeforces Round 34 (Rated for Div. 2) A Hungry Student Problem 题目链接: http://codeforces. ...
- Android多线程之(一)View.post()源码分析——在子线程中更新UI
提起View.post(),相信不少童鞋一点都不陌生,它用得最多的有两个功能,使用简便而且实用: 1)在子线程中更新UI.从子线程中切换到主线程更新UI,不需要额外new一个Handler实例来实现. ...
- 在华为云ECS上手工通过Docker部署tomcat
本文介绍了如何在华为云上ECS上手工通过Docker部署tomcat,并提供了Docker常用操作 一.环境准备 ECS:操作系统版本: CentOS Linux release 7.6.181 ...
- 洛谷 题解 P3161 【[CQOI2012]模拟工厂】
本蒟蒻又双叒叕被爆踩辣! 题目链接 Solution: 这题又是一道贪心.. 数据范围: n<=15 ti<=100,000 gi<=10^9 mi<=10^9 这里就可以看到 ...
- centos使用yum存储快速安装MySQL
RHEL/CentOS 7.x MySQL yum库 https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm RHEL ...
- vue脚手架安装,新建项目,打包
1.安装node.js 从node官网下载并安装node,安装步骤很简单,只要一路“next”就可以了. 2.安装cnpm 淘宝镜像 npm install -g cnpm --registry=ht ...
- border-radius:50%和100%的区别
border-radius 值类型-百分比 border-radius的值是百分比的话,就相当于盒子的宽度和高度的百分比. 我们知道在一个正方形内做一个面积最大的圆形,这个圆的半径就为正方形边长的一半 ...
- 【Springboot】Springboot整合Jasypt,让配置信息安全最优雅方便的方式
1 简介 在上一篇文章中,介绍了Jasypt及其用法,具体细节可以查看[Java库]如何使用优秀的加密库Jasypt来保护你的敏感信息?.如此利器,用之得当,那将事半功倍.本文将介绍Springboo ...