https://www.cnblogs.com/MnCu8261/p/5494807.html  shutil模块

http://blog.csdn.net/rozol/article/details/71422712  操作系统与路径 模块(os / os.path / pathlib)

os模块和shutil模块:

  • os模块提供了对目录或者文件的新建、删除、查看文件属性,还提供了对文件以及目录的路径操作
  • shutil则就是对os中文件操作的补充。移动、复制、打包、压缩、解压

os模块

  • os.getcwd()                              得到当前工作目录,即当前Python脚本工作的目录路径
  • os.listdir()                                 返回指定目录下的所有文件和目录名
  • os.remove()                             函数用来删除一个文件
  • os.removedirs(r"c\python")           删除多个目录
  • os.path.isfile()                               检验给出的路径是否是一个文件
  • os.path.isdir()                               检验给出的路径是否是一个目录
  • os.path.isabs()                             判断是否是绝对路径
  • os.path.exists()                            检验给出的路径是否真地存在
  • os.path.split()                                返回一个路径的目录名和文件名
  • os.path.splitext()                           分离扩展名
  • os.path.dirname()                         获取路径名
  • os.path.basename()                     获取文件名
  • os.system()                                  运行shell命令
  • os.getenv() 与os.putenv()                         读取和设置环境变量
  • os.linesep                                                  给出当前平台使用的行终止符,Windows使用'rn',Linux使用'n'而Mac使用'r'
  • os.name                                                    指示你正在使用的平台,对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix'
  • os.rename(old, new)                                 重命名:
  • os.makedirs(r"c:\python\test")                创建多级目录
  • os.mkdir("test")                                         创建单个目录
  • os.stat(file)                                                获取文件属性
  • os.chmod(file)                                           修改文件权限与时间戳
  • os.exit()                                                     终止当前进程
  • os.path.getsize(filename)                          获取文件大小
  • os.mkdir("file")                                           创建目录
  • shutil.copyfile("oldfile","newfile")               复制文件, oldfile和newfile都只能是文件
  • shutil.copy("oldfile","newfile")                    oldfile只能是文件夹,newfile可以是文件,也可以是目标目录
  • shutil.copytree("olddir","newdir")               复制文件夹, olddir和newdir都只能是目录,且newdir必须不存在
  • os.rename("oldname","newname")           重命名文件(目录),文件或目录都是使用这条命令
  • shutil.move("oldpos","newpos")                移动文件(目录)
  • os.remove("file")                                       删除文件
  • os.rmdir("dir")                                           删除目录, 只能删除空目录
  • shutil.rmtree("dir")                                    空目录、有内容的目录都可以删
  • os.chdir("path")                                        转换目录, 换路径
  • os.mknod("test.txt")                                  创建空文件

通过open获取到的文件句柄,可对文件作的操作:

  • file = open("aaa.txt",a)
  • file.mode 输出读写模式。返回被打开文件的访问模式。
  • file.name 返回文件的名称
  • next()
  • file.closed 判断文件是否已经关闭。返回true如果文件已被关闭,否则返回false
  • file.close() 关闭文件。关闭后文件不能再进行读写操作。
  • file.flush() 刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件, 而不是被动的等待输出缓冲区写入。
  • file.fileno() 返回一个整型的文件描述符(file descriptor FD 整型), 可以用在如os模块的read方法等一些底层操作上。
  • file.isatty() 如果文件连接到一个终端设备返回 True,否则返回 False。
  • file.next() 返回文件下一行。
  • file.read([size]) 从文件读取指定的字节数,如果未给定或为负则读取所有。
  • file.readline([size]) 读取整行,包括 "\n" 字符。
  • file.readlines([sizehint]) 读取所有行并返回列表,若给定sizeint>0,返回总和大约为sizeint字节的行, 实际读取值可能比sizhint较大, 因为需要填充缓冲区。
  • file.seek(offset[, whence]) 设置文件当前位置
  • file.tell() 返回文件当前位置。
  • file.truncate([size]) 截取文件,截取的字节通过size指定,默认为当前文件位置。
  • file.write(str) 将字符串写入文件,没有返回值。
  • file.writelines(sequence) 向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符。

http://www.runoob.com/python/python-files-io.html


pathlib模块

from  pathlib import Path

aaa = Path(__file__).parent.parent / "git" / "package.json"  # 路径。看一下这种写法
print(aaa)
print(aaa.stem) # 文件名(已去掉后缀)
print(aaa.suffix) # 文件后缀
print(aaa.is_dir()) # 判断是否是目录
print(aaa.exists()) # 判断是否存在

熟悉一下os和shutil模块,做个练习:

将日志文件移动到同名目录中()。比如,把AAAAA_1.log、AAAAA_2.log,移动到AAAAA目录中

import os
import shutil os.chdir("c:/zzzzz/") # 切换路径 for tmpfile in os.listdir(os.curdir):
if os.path.isdir(tmpfile):
print(tmpfile, "是文件夹")
else:
name1 = os.path.basename(tmpfile)
tmpfile22 = "./" + name1[:-6] # AAAAA_1.log 切掉"_1.log"这6个字符
if not os.path.exists(tmpfile22): # 如果没目录就创建
os.makedirs(tmpfile22)
shutil.move(tmpfile, tmpfile22)

...

py库:os、shutil、pathlib的更多相关文章

  1. Python3 操作系统与路径 模块(os / os.path / pathlib)

    #!/usr/bin/env python # coding=utf-8 __author__ = 'Luzhuo' __date__ = '2017/5/7' import os def os_de ...

  2. 标准库os

    os模块 提供对操作系统进行调用的接口 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 os ...

  3. python os&shutil 文件操作

    python os&shutil 文件操作 # os 模块 os.sep 可以取代操作系统特定的路径分隔符.windows下为 '\\' os.name 字符串指示你正在使用的平台.比如对于W ...

  4. 标准库 os、sys、logging、configparser、time、requests

    os : 与操作系统交互的模块 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作目录:相当于 ...

  5. tablib把数据导出为Excel、JSON、CSV等格式的Py库(写入数据并导出exl)

    #tablib把数据导出为Excel.JSON.CSV等格式的Py库 #python 3 import tablib #定义列标题 headers = ('1列', '2列', '3列', '4列', ...

  6. python标准库之shutil——可操作权限的文件操作库

    转载自:https://www.jb51.net/article/145522.htm shutil模块提供了许多关于文件和文件集合的高级操作,特别提供了支持文件复制和删除的功能. 文件夹与文件操作 ...

  7. Python常用库 - os库

    os简单介绍 os 模块提供了非常丰富的方法用来处理文件和目录 os关于目录路径的方法 # 获取当前路径 path = os.getcwd() # 获取当前绝对路径 os.path.abspath(p ...

  8. 6.4.1 标准库 os、os.path 与 shutil 简介

    os模块除了提供使用操作系统功能和访问文件系统的简便方法之外,还提供了大量文件与文件夹操作的方法,如下表所示. 方法 功能说明 access(path,mode) 按照 mode 指定的权限访问文件 ...

  9. day 5 模块导入、常用模块os shutil sys commands subprocess hashlib json pickle zipfile traceback random datetime

    os: os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作目录:相当于shell下cd os. ...

随机推荐

  1. windows云服务器发布项目

    1.tomcat安装版安装,把server.xml中”localhost“改为自己的域名.启动tomcat的时候就通过外网访问到云服务器的tomcat主页. 2.上述实现的前提是已经对域名进行解析:域 ...

  2. 2018.8.8 SpringMVC分层

    分层: 表示层:请求分发,调用处理器,页面展示. 业务层:业务处理接口和实现. 持久层:数据访问和持久化. 各层之间解耦,下层对上层透明. 具体代码分析如下图,图转自https://blog.csdn ...

  3. socket端口绑定后通过bat干掉

    @echo off::port为需要去绑定端口set port=8888for /f "tokens=5 delims= " %%a in ('netstat -ano ^|fin ...

  4. BZOJ 4265 货币系统

    今天比赛的时候做到的.题解写得很简单,但是感觉对于我这种蒟蒻还是很有思考的价值的. 题面(由于题面很短,就不概括了):小Q当上了新的宇宙大总统,他现在准备重新设计一套货币系统. 这个货币系统要求一共有 ...

  5. Azure DevOps Server/Team Foundation Server

    TFS wasn't designed specifically to support a requirements management process. Epics are like big st ...

  6. Java BitSet解决海量数据去重

    先提一个问题,怎么在40亿个整数中找到那个唯一重复的数字? 第一想法就是Set的不可重复性,依次把每个数字放入HashSet中,当放不去进去的时候说明这就是重复的数字,输出这个数字. if(hs.co ...

  7. Java面向对象和高级特性 项目实战(一)

    一.项目简介 项目名:嗖嗖移动业务大厅 技能点: 二.技能点 三.系统概述 四.整体开发思路 五.实体类和接口开发 六. 创建工具类 七.使用集合存储数据 八.开发计划 九.代码实现 1.项目目录 2 ...

  8. 如何长期试用Beyond Compare 4

    打开Beyond Compare 4,发现已经过了试用期   我们可以点击立即购买,购买相关的Beyond Compare 4产品,如果你已经有密钥了,可以选择使用密钥   如果还想继续试用,则找到自 ...

  9. Java开发中判断集合类为空的方法-转载

    避免写两个判断 org.springframework.util.CollectionUtils 方法: public static boolean isEmpty(Collection collec ...

  10. VisualSVN设置提交时必须输入日志信息

    VisualSVN设置提交时必须输入日志信息 1.svn提交时强制输入提交信息 为了阻止SVN提交空日志信息和垃圾文件可以在SVN服务器端强制必须填写日志信息,这时需用到pre-commit钩子脚本. ...