文件

2019年5月1日17:52:33 发表评论 262 views
打开/关闭 文件
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必须不存在

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: