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操作文件和目录查看、创建、删除、复制的更多相关文章

  1. Python操作文件和目录

    Python操作文件和目录 读写文件比较简单,有一点特别注意就好了 windows下Python默认打开的文件以gbk解码,而一般我们的文件是utf-8编码的,所以如果文本含有中文,就会出现异常或者乱 ...

  2. 【Python】[IO编程]文件读写,StringIO和BytesIO,操作文件和目录,序列化

    IO在计算机中指Input/Output,也就是输入和输出. 1.文件读写,1,读文件[使用Python内置函数,open,传入文件名标示符] >>> f = open('/User ...

  3. Python之IO编程——文件读写、StringIO/BytesIO、操作文件和目录、序列化

    IO编程 IO在计算机中指Input/Output,也就是输入和输出.由于程序和运行时数据是在内存中驻留,由CPU这个超快的计算核心来执行,涉及到数据交换的地方,通常是磁盘.网络等,就需要IO接口.从 ...

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

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

  5. Python学习笔记(二十五)操作文件和目录

    摘抄:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014319253241 ...

  6. python学习笔记 操作文件和目录

    如果我们要操作文件.目录,可以在命令行下面输入操作系统提供的各种命令来完成.比如dir.cp等命令. 如果要在Python程序中执行这些目录和文件的操作怎么办?其实操作系统提供的命令只是简单地调用了操 ...

  7. python的I/O编程:文件打开、操作文件和目录、序列化操作

    1 文件读写 1.1 打开文件: open(r'D:\text.txt') 1.2 文件模式 值 功能描述 'r' 读模式 'w' 写模式 'a' 追加模式 'b' 二进制模式 '+' 读写模式 1. ...

  8. IO编程、操作文件或目录、序列化、JSON

    IO中指Input/Output,即输入和输出:涉及到数据交换的地方,通常是磁盘.网络等,就需要IO接口 1.由于CPU和内存的速度远远高于外设的速度,所以,在IO编程中,存在速度严重不匹配问题.eg ...

  9. Python3 IO编程之操作文件和目录

    如果我们要操作文件,目录,可以在命令行下面输入操作系统提供的各种命令来完成.比如ls,cp等命令 如果要在python程序中执行这些目录和文件的操作怎么办?其实操作系统提供的命令指示简单地调用了操作系 ...

随机推荐

  1. db.properties(oracle)和(mysql)

    oracle jdbc.driver=oracle.jdbc.driver.OracleDriverjdbc.url=jdbc:oracle:thin:@localhost:1521:XEjdbc.u ...

  2. scikit-learn网格搜索来进行高效的参数调优

    内容概要¶ 如何使用K折交叉验证来搜索最优调节参数 如何让搜索参数的流程更加高效 如何一次性的搜索多个调节参数 在进行真正的预测之前,如何对调节参数进行处理 如何削减该过程的计算代价 1. K折交叉验 ...

  3. k8s 上部署 Redis 三主三从 集群

    目录 介绍 为什么要使用Redis? 什么是Redis群集? 在Kubernetes中部署Redis集群 从 GitHub 上下载: 创建pv 创建statefulset 创建service 初始化 ...

  4. 3、Docker 基础安装和基础使用 二

    Docker 网络 启动了nginx容器,但却不知道从哪里进行访问nginx. 启动nginx容器,并附加网络映射 在启动nginx容器的时候,增加一个-P大写的P的参数 表示随机映射一个端口 [ro ...

  5. 使用Navicat连接阿里云服务器中的Mysql数据库

    1.首先将阿里云服务器中的安全组添加上Mysql的端口3306,如下图所示: 步骤就是进入到阿里云的官网,点击右上角控制台,在左边选择云服务器ECS--->实例 点击图中的管理按钮,然后选择本实 ...

  6. 重磅!普惠AI--华为云语音语义万次调用1元购,有奖问答@评论区等你来!【华为云技术分享】

    活动快速入口:https://activity.huaweicloud.com/language_speech_promotion0.html 语音交互与自然语言处理 语音交互是一种人机交互方式,以开 ...

  7. 转:Java logger组件:slf4j, jcl, jul, log4j, logback, log4j2

    先说结论 建议优先使用logback 或 log4j2.log4j2 不建议和 slf4j 配合使用,因为格式转换会浪费性能. 名词:jcl 和 jul 标题中的 jcl 是 apache Jakar ...

  8. JetBrains 迷你地图插件 CodeGlance

    JetBrains 本身不带迷你地图功能,但可以通过插件的形式来实现. 直接在 Settings 里边搜索 CodeGlance,安装后重启 IDE 就有了.

  9. 【已解决】解决IntelliJ IDEA控制台输出中文乱码问题

    IntelliJ IDEA 真的是一款很方便的Java开发工具,但是关于中文乱码这个问题我不得不吐槽,这个编码也弄得这么麻烦干嘛,真想找idea开发者干架,我敢打包票我能在一分钟之内一拳飞过去让他跪下 ...

  10. ios 10 更新 新体验

    1.使用手机登录开发者网站https://developer.apple.com/download/ 2.下载描述文件 3.安装描述文件,按照提示步骤操作 4.更新ios系统 下面的方法是连接电脑直接 ...