打开/关闭 文件
f = open(file_path,'r') 里面路径可以直接写脚本文件夹下的文件
f.close()
带+号的是读写
r无法创建新文件
a是追加
每次读取或者写入后,指针会移动到相应的结尾
r 以只读方式打开一个文件,文件指针默认放在文件开头,文件不存在则报错(并且是只读的)
r+ 打开一个文件用于读写,文件指针默认放在文件开头,文件不存在则报错(只覆盖前面的对应长度,后面的保持原样,打开一个文件可进行多次写入)
w 打开一个文件只用于写入,如果该文件存在则将其覆盖,如果不存在,创建新文件(全覆盖写入,且无法读取,打开一个文件可进行多次写入)
w+ 打开一个文件用于读写,如果文件已存在则将其覆盖,如果不存在,创建新文件(是全覆盖写入,打开时会清除原有文件)
a 打开一个文件用于追加,如果文件已存在,文件指针会放在文件结尾(也就是说,新的内容将会被写到已有的内容之后)如果不存在,创建新文件进行写入
a+ 打开一个文件用于读写,如果文件已存在,文件指针会放在文件结尾,文件打开时会是追加模式,如果不存在,创建新文件用于读写(好像没什么区别?一个追加一个追加读写 )
其他模式: rb rb+ wb wb+ ab ab+
加个b的作用:以二进制的格式打开文件,进行上述操作
读取写入文件:
读取指定文件内容: f.read()
读取一行内容: f.readline()
读取多行内容: f.readlines()
写入内容: f.write(data)
写入多行内容(需要自己加换行符): f.writelines(lines)
立即刷缓冲: f.flush()
获得游标位置: f.tell()#换行符占一个位置,汉字占两个,字母占一个
调整游标位置: f.seek(position)
文件的写入和读取时必须要十分熟练的内容
with ... open(file_path,mode = 'r') as f:
f.xxx
f.xx
对f进行一系列的操作
跳出with语句的时候自动执行f.close()操作
文件访问编码
open(file_path,mode = 'r',encoding = None)
open(file_path, mode = 'r',encoding =None,errors = None)
os模块的目录及文件操作:
显示当前路径: os.getcwd()
展示当前的目录内容: os.listdir(path)
改变当前路径: os.chdir(path)
创建目录: os.mkdir(文件名)
删除目录: os.rmdir(文件名)
使用Linux命令: os.system()
删除文件: os.remove(文件名)
重命名: so.rename('oldname','newname')
os.path模块的路径操作:
路径拼接:os.path.join(path1,path2,path3...)
所在目录/父目录: os.path.dirname
基本短路径:os.path.basename
绝对路径: os.path.abspath
相对路径: os.path.relpath
资源大小: os.path.getsize
资源时间: os.path.gtctime/创建getatime访问getmtime修改时间
路径是否存在: os.path.exits
是否是目录: os.path.isdir
是否是文件: os.path.isfile
是否是绝对路径: os.path.isabs
移动文件和文件夹:
2.复制文件:
shutil.copyfile(“oldfile”,”newfile”) #oldfile和newfile都只能是文件
shutil.copy(“oldfile”,”newfile”) #oldfile只能是文件夹,newfile可以是文件,也可以是目标目录
3.复制文件夹:
4.shutil.copytree(“olddir”,”newdir”) #olddir和newdir都只能是目录,且newdir必须不存在