6.1 文件
1.打开文件: f = open(r‘file_path‘, mode=‘r‘)不指定路径就是当前文件夹下 传入表示文件路径的字符串,会返回一个文件对象。2.关闭文件: f.close()
打开一个文件 最后一定要关闭
路径可以用相对路径 也可以用绝对路径
3.模式 描述r:
以只读方式打开文件,文件指针默认放在文件开头,文件不存在则报错
r+:
打开一个文件用于读写, 文件指t默认放在文件开头,文件不存在则报错
w:
打开一个文件只用于写入,如果该文件已存在则将其覆盖,如果不存在,创建新文件
W+
打开一个文件用于读写,如果该文件已存在则将其覆盖,如果不存在,创建新文件
a:
打开一个文件用于追加,如果文件已存在,文件指针会放在文件结尾(也就是说,新的内容将会被写到已有内容之后)如果不存在,创建新文件进行写入
a+:
打开一个文件用于读写,如果文件已存在,文件指针会放在文件结尾:,文件打开时会是追加模式,如果不存在,创建新文件用于读写
其他模式:rb rb+ wb wb+ ab ab+
加个b的作用:以二进制的格式打开文件,进行上述操作 。
文本模式
以str字符串形式写入 读取出来的也是str字符串
二进制模式
以bytes字符串形式写入 读取出来的也是bytes字符串
4.读取/写入 文件
操作 方法 读取指定大小的内容 f.read() 读取一行的内容 f.readline() 读取多行内容 f.readlines() 写入内容 f.write(data) 写入多行(需要自己加换行符) f.writelines(lines) 立即刷新缓冲 f.flush() 获得游标位置 f.tell() 调整游标位置 f.seek(position)
6.2 内存假文件StringIO BytesIO
1.:如何在内存中模拟一个文件 ?
文本模式: f = io.StringIO() 二进制模式: f = io.BytesIO()
2.读取文件:
f.getvalue() 获取整个io流的文件(光标移到最前面) 注意! 内存假文件一旦关闭,数据消失
6.3 with … as …
with open(file_path, mode=‘r‘) as f: ? 对f进行一系列操作 也可以执行别的操作 ? 跳出with语句快的时候自动执行f.close()
with open(file_path, mode=‘r‘) as f1,open(file_path, mode=‘r‘) as f2.... : ? 对f1 f2进行一系列操作 也可以执行别的操作 ? 跳出with语句块的时候自动执行f.close()
6.4 os path(路径)
open(file_path, mode=‘r‘, encoding=‘utf-8‘)
open(file_path, mode=‘r‘, encoding=None, errors=‘ignore‘) 忽视问题
1.os模块 的目录及文件操作:
显示当前路径: os.getcwd() 展示当前目录内容: os.listdir(path) 改变当前路径: os.chdir(path) 创建目录: os.mkdir(文件名) 删除目录:”os.rmdir(文件名) ? 使用 Linux 命令: os.system() 删除文件: os.remove(文件名) 重命名: os.rename2.os.path模块的路径操作:
路径拼接: os.path.join(path1,path....) 所在目录/父级目录: os.path.dirname 基本短路径: os.path.basename 绝对路径: os.path.abspath 相对路径: os.path.relpath 资源大小: os.path.getsize 资源时间: os.path.getctime /创建 getatime /访问 getmtime 修改 路径是否存在: os.path.exists 是否是目录: os.path.isdir 是否是文件: os.path.isfile 是否是绝对路径: os.path.isabs
print(os.path.abspath(‘path‘))
? import os def copy_file(old_path,new_path): with open(old_path,‘r‘)as f,open(new_path,‘w‘)as e: e.write(f.read()) copy_file(‘test.py‘,‘/home/pyvip/test2.py‘) def traversal_dir(path): path_list = os.listdir(path) print(path_list) traversal_dir(‘\home\pyvip\python 34jichu‘) ? ? ##################################### ? def traversal dir(dir_ path): path_ list = os.listdir(dir_ path) print(‘ 目录|{}|中的内容为:{}。‘.format(dir_ path,path. list)) for path in path_ list: abs_ path = os .path. join(dir_ path, path) if os.path. isdir(abs_ path): traversal_ dir(abs_ path) traversal_ dir( ‘ /home/pyvip‘ ) . ? ? ?
查看更多关于Python基础 6 .文件操作的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did170530