一、文件操作
1. 文件的操作有:
打开
读写
关闭
打开: open(name, mode)
name:是要打开的⽬目标⽂文件名的字符串串(可以包含⽂文件所在的具体路路径)。
mode:设置打开⽂文件的模式(访问模式):只读、写⼊入、追加等 'r' 'w' 'w+' 与C语言 fopen 打开模式一样
写: write
读: read() 读全部
readline() 读一行
readlines() 读所有行
移动: seek
当前位置 : tell
flush: 内存写入文件
close: 关闭
2. 获取文件大小
import os
def get_FileSize1(filePath):
fsize = os.path.getsize(filePath)
fsize = fsize / float(1024 * 1024)
return round(fsize, 2)
#使用上下文管理器 打开文件,文件自动关闭
def get_FileSize2(filePath):
#0代表从头开始,1代表当前位置,2代表文件最末尾
filesize = 0
with open(filePath,'r') as f:
f.seek(0,2)
filesize = f.tell()
fsize = filesize / float(1024 * 1024)
return round(fsize, 2)
3. 文件是可以迭代的对象
with open(filename) as f:
for line in f:
process(line)
4. 在不将文件对象赋给变量的情况下迭代文件
for line in open(filename):
process(line)
sys.stdin 标准输入也是可以迭代的对象
import sys
for line in sys.stdin:
process(line)
二、文件和文件夹操作
需要引入os模块
access(path,mode) 检查文件是否存在,是否有读、写、执行权限 os.F_OK os.R_OK os.W_OK os.X_OK
也可以使用os.path.exist(path) 来检测文件是否存在
open() 方法用于打开一个文件,并且设置需要的打开选项,模式参数mode参数是可选的,默认为 0777,返回值fd
chdir(path) : 改变工作目录
chmod(path,mode) 改变权限
chown(path, uid, gid) 改变所有者和所在组
chroot 改变当前进程的根目录
close(fd) 关闭文件描述符
os.fdatasync(fd) 强制写文件到磁盘 但是不强制更新文件的状态信息。
fdopen(fd[, mode[, bufsize]]) 通过fd来创建文件对象 并返回这个对象
fstat(fd) 返回文件状态,类似于stat函数
fsync(fd) 强制写文件到磁盘
getcwd() 获得当前工作目录
rename 目标⽂文件名, 新文件名
remove 必须是文件名,如果是目录则会报错 OSError
unlink() 方法用于删除文件,如果文件是一个目录则返回一个错误,最好使用unlink来删除文件
rmdir(path) path是文件夹路径,注意文件夹需要空的才能被删除
mkdir (path)
removedirs(path) 递归地删除目录。如果子目录成功被删除,则将会成功删除父目录,子目录没成功删除,将抛异常。
最好使用 shutil 模块来删除目录 shutil.rmtree()
listdir(目录) 返回指定的文件夹包含的文件或文件夹的名字的列表