python——文件

1.文件和流

2.文件对象

3.文件的基本操作

4.随机文件的读写

5.其它文件读写

6.对象序列化


7.1 文件和流

文件是持久化的数据

可以读一次或有限次数的数据序列(有序数据的集合)

流的起点和终点

输入流和输出流:流的起点:输出流   流的终点:输入流

先流入程序再输出程序

import os
try:
    file1 = open("data",'w')
    
    file1.write("10000")
    
except FileNotFoundError:
    print("文件不存在")
except PermissionError:
    print("没有足够权限操作")
except BaseException:
    print("其它异常")
    
finally:
    file1.close()

不允许写入一个数字,只能是字符串类型,因为打开是文本文件,也可以设置标记,进行写入数字。

一种简化的文件操作方法:with语句(当很确定文件是可以读写的,权限没有问题)

with open("data",'w') as f:
    f.write("100")
    f.write("300")

7.2 文件对象

文件在python中的代理

打开文件 f1 = open(file,mode = 'r' buffering = -1,encoding = None,errors = None,newline = None,closefd = True,opener = None)

newline为换行回车符

关闭文件 f1.close() 如果没有close的话,可能文件没有变化

 

文本文件的写入,f为文件对象

f.write(s):把字符串s写入文件

f.writelines(lines):把line中的多个字节序列写入文件

f.flush():强制立即将缓冲区中的数据写入到文件中


7.2文件的基本操作

readlines会返回一个列表(列表中包含换行符)

read()会返回一个字符串类型,其中也有换行符

二进制文件的写入和读入方法:

“wb”写

“ab”“rb+”“wb+”为读写方式

f.readinto(b) 从f中读len(b)个字节写入bytes对象b(如果长度不及len(b)就会读全部,返回真实读取的个数)


7.4随机文件的读写

设置读写指针的位置 f.seek(offset,whence=os.SEEK_SET|os.SEEK_END|os.SEEK_CUR)

-15,os.SEEK_CUR从文件末尾开始往回跳15个字节


7.5 CSV文件操作

csv.reader(csvfile,dialect='excel',**fmtparams)

csv.reader的常用属性 若fr为csv.reader对象,则:fr.line_num返回读入的行数

delimiter为间隔符

BasePath = 'c:\\data\\'
import csv
with open(BasePath+'table.csv','r',encoding="utf-8") as csvfile:
    f_csv = csv.reader(csvfile,delimiter = ',')
    print('---------Header--------')
    print(next(f_csv))
    print('---------Data--------')
    for row in f_csv:
        print(row)

关于next函数

l1 = [1,2,3]#本身不是迭代器
l2 = iter(l1)#迭代器
print(next(l2))#取出第一个
print(next(l2))#取出第二个

csv都是按行操作

csv文件写入也是一样

csvwriter.writerow(row):写入一行数据

csvwriter.writerows(rows):写入多行数据

csvwriter.dialect:返回其dialect的只读属性


7.6对象序列化

对象的序列化与对象的反序列化

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值