py库:os、shutil、pathlib
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的更多相关文章
- Python3 操作系统与路径 模块(os / os.path / pathlib)
#!/usr/bin/env python # coding=utf-8 __author__ = 'Luzhuo' __date__ = '2017/5/7' import os def os_de ...
- 标准库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 ...
- python os&shutil 文件操作
python os&shutil 文件操作 # os 模块 os.sep 可以取代操作系统特定的路径分隔符.windows下为 '\\' os.name 字符串指示你正在使用的平台.比如对于W ...
- 标准库 os、sys、logging、configparser、time、requests
os : 与操作系统交互的模块 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作目录:相当于 ...
- tablib把数据导出为Excel、JSON、CSV等格式的Py库(写入数据并导出exl)
#tablib把数据导出为Excel.JSON.CSV等格式的Py库 #python 3 import tablib #定义列标题 headers = ('1列', '2列', '3列', '4列', ...
- python标准库之shutil——可操作权限的文件操作库
转载自:https://www.jb51.net/article/145522.htm shutil模块提供了许多关于文件和文件集合的高级操作,特别提供了支持文件复制和删除的功能. 文件夹与文件操作 ...
- Python常用库 - os库
os简单介绍 os 模块提供了非常丰富的方法用来处理文件和目录 os关于目录路径的方法 # 获取当前路径 path = os.getcwd() # 获取当前绝对路径 os.path.abspath(p ...
- 6.4.1 标准库 os、os.path 与 shutil 简介
os模块除了提供使用操作系统功能和访问文件系统的简便方法之外,还提供了大量文件与文件夹操作的方法,如下表所示. 方法 功能说明 access(path,mode) 按照 mode 指定的权限访问文件 ...
- day 5 模块导入、常用模块os shutil sys commands subprocess hashlib json pickle zipfile traceback random datetime
os: os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作目录:相当于shell下cd os. ...
随机推荐
- js 实现仿 淘宝 五星评价 demo
<style> @font-face { font-family: 'iconfont'; /* project id 247957 */ src: url('//at.alicdn.co ...
- SDL播放YUV----单帧
用到的项目:Tocy-Android-SDLv2 C中的 入口: main.c as_lesson_XXX.c bmp_main : 在C中定义文件的路径: char *filepath = &quo ...
- cf352E Jeff and Brackets dp+矩阵快速幂(加法+min运算)
题意大致是这样的,一共要放 m 段括号序列,每一段放 n 个括号,也就是放 n*m个括号,再每一段中的 n 个位置分别有放左括号和右括号的代价,问最终摆放出合法的括号序列的最小代价是多少. 另外保证, ...
- android开发解决Error:Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'. > java.lang.RuntimeException: java.lang.RuntimeException: c.....
网上常见的方法我都试过,都没能解决,偶然看到的一个方法解决了,在这了记录一下. 在App目录下的build.gradle的android{ ... ....}中添加如下代码,即可解决.(xx.xx. ...
- dll被设置为用记事本打开的解决方法
dll被设置为用记事本打开的解决方法: 打开注册表编辑器 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Fi ...
- 08机器学习实战之BP神经网络
1. 背景: 1.1 以人脑中的神经网络为启发,历史上出现过很多不同版本 1.2 最著名的算法是1980年的 backpropagation 2. 多层向前神经网络(Multil ...
- docker mysql8 注意
1. mysql8 出了有段时间了,但公司项目的django还不支持mysql8的默认加密方式. 连接时报错 Error : The server requested authentication m ...
- js for循环中定义clike事件由于闭包导致的循环变量获取不到的问题
在网上找的 记下来以备不时之需 案例; 本人有一个数组按钮 循环数组按钮 给每个按钮添加click事件 原本以为搞定但是出现了 每个按钮都是数组最后的方法 然后查找问题 发现onclike事件中的i ...
- Tomcat 多个虚拟主机配置方法
conf/server.xml 移除注释内容后,类似内容如下: <Server> …… …… …… <Service name="Catalina"> &l ...
- 使用GNVM工具高效切换node版本
在开发中,有时候需要在多个node版本之间切换,重复手动下载安装node安装包来切换版本很麻烦,在Mac系统中可以使用nvm工具,而windows系统无法使用nvm工具.gnvm解决了在windows ...