Python学习笔记(四)文件操作

xiaoxiao2021-02-28  120

一般语法

读取键盘输入

buf = raw_input("please input your name") buf = raw_input()

打开文件 如果hello.txt不存在

fp = open("hello.txt","w") #w是说创建这个文件,以写的方式打开 fp.write("text") fp.close()

如果hello.txt已存在,以读的方式打开

fp = open("hello.txt","r") fp = open("hello.txt","r+") #表示即可读也可写

mode文件访问权限

r 只读 w 只写,如果不存在则创建,如果文件存在,则截断文件。会清空文件。 a 追加,如果不存在,就创建文件。 r+ 读写方式打开 w+ 可读可写文件,最大的区别是w后面那句话 a+ 追加打开,可读可写,如果文件不存在则创建 buf = fp.read(1000)最多读1000个字节

读写指针

比方文件里有abcdefg,用r+打开 写入123,则变成123defg,为什么? 因为打开文件时,指针位于开头,如果这时候写东西,那么是从开头写。如果先fp.read(),则指针会移动到文件结尾,这时候写东西,就会从末尾开始写了。

fp.open("hello.txt","r+") buf = fp.read() buf =>12345678 fp.write("abc") fp.flush() fp.seek(0) buf = fp.read() buf =>12345678abc

seek用来移动指针的。 例子1:

res=fp.seek(0) fp.write("aaaa") fp.flush() fp.seek(0) fp.read() =>aaaa5678abc

例子2

fp.seek(4) fp.write('xxxx') fp.flush() fp.seek(0) buf=fp.read() buf =>aaaaxxxxabc

如何理解呢? python底层是C/C++语法,类似于FILE结构体 结构体包含以下几部分

mode(例如r+)读写指针位置文件描述符=> 操作系统结合真正磁盘文件缓冲区 seek是移动读写指针的,文件的读写从seek的位置开始。

File对象属性

close() write() read() seek()移动读写指针 tell()返回读写指针所在位置。 1、手动flush() 2、fflush()刷新缓冲区,缓冲区满时,自动刷新,缓冲区一般8192bytes字节大小 3、文件关闭时,自动刷新。 stdout可以看做一个文件,标准输出 fprint(“123”)时,只是将123写入缓冲区了。也可以通过fclose(stdio)来关闭文件。

转载请注明原文地址: https://www.6miu.com/read-83408.html

最新回复(0)