文件操作:打开文件、操作、关闭文件
C语言文件操作:
①打开文件:
FILE *fp; //定义一个指向文件的指针变量fp
fp=fopen(“test02”,”w”); //以只写的方式,打开test02(参数1:所要打开的文件名,参数2:使用文件的方式)
(文件的打开方式:
w——只写
r——只读
a——追加(向文本末尾添加数据)
r+——读写(以读和追加的模式打开文件)
w+——写读
a+——追加读写
rb——读二进制文件(例如视频),还可以进行网络传输
wb——写二进制文件
)
②文件操作
fgetc(fp) //从fp所指向的文件读入一个字符
fputc(ch,fp) //把字符ch写到文件指针变量fp所指向的文件中
fgets(str,n,fp) //从fp指向的文件读入一个长度为n-1的字符串,并存放字符创到str中(读成功返回地址str,失败返回NULL)
fputs(str,fp) //把str所指向的字符串写到文件指针变量fp所指向的而文件中(输出成功返回0,失败返回非0值)
fread(buffer,size,count,fp); /*以二进制的方式读取文件中的内容(buffer :用来存放从文件读入的数据的存储区的地址,size:要读写的字节数,count:要读写多少个数据项(每个数据项长度为size),fp:文件指针)*/
fwrite (buffer,size,count,fp); /*以二进制的方式读取文件中的内容(buffer :把此地址开始的存储区中的数据向文件输出,size:要读写的字节数,count:要读写多少个数据项(每个数据项长度为size),fp:文件指针)*/
rewind(fp); //使文件位置标记返回文件头
fseek(文件类型指针,位移量,起始点); //位移量为long型数据,在数字末尾加L
起始点 |
名字 |
用数字代表 |
文件开始位置 |
SEEK_SET |
0 |
文件当前位置 |
SEEK_CUR |
1 |
文件末尾位置 |
SEEK_END |
2 |
fseek(fp,100L,0) ; //将文件位置标记向前移到离文件开头100个字节处
ftell(fp); //得到文件位置标记的当前位置(出错则返回-1L)
ferror(fp); //检查在调用各种输入输出函数时,有没有出现错误(返回值为0,表示未出错,返回非0值,表示出错)
clearerr(fp); // 使文件错误标志和文件结束标志置为0
feof(fp) ; //如果文件读写位置标记移到文件末尾则返回值为真
③文件关闭
f.close(fp) //关闭fp所指向的文件
python文件操作:
①打开文件:f=open('test01','r',encoding='utf_8') #参数1:所要打开的文件,参数2:文件的打开方式,参数三:文件的编码格式 ;f为文件句柄
’’’电脑中存在名为test01的文件,则直接打开;否则,创建名为test01的文件并打开’’’
②文件操作
data=f.read() #读取文件内容
f.write(“第一次测试01/n”) #向文件中写入内容
f.readline() #打印当前行
f.readlines()#打印多行
f.readlines(2) #打印第二个字符所在行
f.readline(5) #打印当前行的前5个字符
print(f.tell()) #打印当前句柄所在位置
f.seek(0) #回到文件首
f.fileno() #返回文件编号
f.flush() #强制刷新(将缓存的内容放到硬盘)
f.buffer() # 返回值为<_io.BufferedReader name='test01'>
f.truncate() #清空文件
f.truncate(10) #读取文件的前10个字符(只能从文件开头读)
③文件关闭
f.close()
f.closed
例一:读取前n行
for i in range(n):
print(f.readline())
例二:循环读取全部行
(1)for line in f.readlines():
print(line.strip())
(2)for line in f:
print(line)
执行结果:
例三:在输出的文件内容中添加分割线
count=0
for line in f:
if count==2:
print("-------fenge------")
print(line)
count+=1
continue
print(line)
count+=1
执行结果:
欢迎各位大神批评、指正!谢谢!