打开和关闭文件:
open()函数:
必须使用内置函数open()打开一个文件,创建一个file对象,相关方法才可以调用进行读写。
语法:
file object = open(file_name [,access_mode] [,buffering ]) 也可以加encoding
flie_name:操作文件的路径
access_mode:方问的方式 只读,写入,追加等.
buffering :如果buffering的值被设为0,就不会有寄存。如果buffering的值取1,访问文件时会寄存行。 如果将buffering的值设为大于1的整数,表明了这就是的寄存区的缓冲大小。如果取负值,寄 存区的缓冲大小则为系统默认。\
encoding:设置编码格式,中文编码"utf-8"
不同模式打开文件的完全列表:
mode | 说明 |
---|---|
r | 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 |
rb | 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。 |
r+ | 打开一个文件用于读写。文件指针将会放在文件的开头。 |
rb+ | 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。 |
w | 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
wb | 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
w+ | 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
wb+ | 以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
a | 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。 |
ab | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。 |
a+ | 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |
ab+ | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 |
file对象常用函数:
file.colse() :关闭文件,关闭后的文件不能进行读写操作。
file.flush():刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件,而不是被动的等待输出缓冲区写入。
file.flieno() : 返回一个整形的文件描述(file descriptor FD 整形),可以用在os模块的read方法等一些底层操作上 。
file.isatty() :如果文件连接到一个终端设备返回True ,否则为False。
file.next():返回文件下一行.
file.read([size]): 从文件读取指定的字节数,如果未给定或为负则读取所有。
file.readline([size]): 读取整行,包括“/n”字符.
file.readlines([sizeint):读取所有行并返回列表,若给定sizeint>0 ,返回总和为sizeint字节的行,实际读取值可能给比sizeint 较大 ,因为 需要填充缓冲区。
file.seek(offset[,whence]):设置文件当前位置。
file.tell()返回文件当前位置 。
file.truncate([size]):从文件的首行字符开始截断,截断文件size个字符,无size表示从当前位置截断;截断之后后面的所有字符被删除,其中widows系统下的换行代码2个 字符大小 。
file.write(str):将字符串写入文件 ,返回的是写入的字符长度.
file.writelines(sequnce):向文件写入一个个序列字符串列表,如果需要换行则要自己加入每行的换行符。
os模块:
os.sep:取代操作系统特定的路径分隔符
os.name:指示你正在使用的工作平台。比如对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix'。
os.getcwd:得到当前工作目录,即当前python脚本工作的目录路径。
os.getenv()和os.putenv:分别用来读取和设置环境变量
os.listdir():返回指定目录下的所有文件和目录名
os.remove(file):删除一个文件
os.stat(file):获得文件属性
os.chmod(file):修改文件权限和时间戳
os.mkdir(name):创建目录
os.rmdir(name):删除目录
os.removedirs(r“c:\python”):删除多个目录
os.system():运行shell命令
os.exit():终止当前进程
os.linesep:给出当前平台的行终止符。例如,Windows使用'\r\n',Linux使用'\n'而Mac使用'\r'
os.path.split():返回一个路径的目录名和文件名
os.path.isfile()和os.path.isdir()分别检验给出的路径是一个目录还是文件
os.path.existe():检验给出的路径是否真的存在
os.listdir(dirname):列出dirname下的目录和文件
os.getcwd():获得当前工作目录
os.curdir:返回当前目录('.')
os.chdir(dirname):改变工作目录到dirname
os.path.isdir(name):判断name是不是目录,不是目录就返回false
os.path.isfile(name):判断name这个文件是否存在,不存在返回false
os.path.exists(name):判断是否存在文件或目录name
os.path.getsize(name):或得文件大小,如果name是目录返回0L
os.path.abspath(name):获得绝对路径
os.path.isabs():判断是否为绝对路径
os.path.normpath(path):规范path字符串形式
os.path.split(name):分割文件名与目录(事实上,如果你完全使用目录,它也会将最后一个目录作为文件名而分离,同时它不会判断文件或目录是否存在)
os.path.splitext():分离文件名和扩展名
os.path.join(path,name):连接目录与文件名或目录
os.path.basename(path):返回文件名
os.path.dirname(path):返回文件路径
with open('abc.txt', 'wb') as f: dic = {'age': 23, 'job': 'student'} pickle.dump(dic, f) # 反序列化 with open('abc.txt', 'rb') as f: aa = pickle.load(f) print(aa)