#OPEN文件操作(Python)
f = open('file_name ','读写模式')
#读写模式:r只读,r+读写,w新建(会覆盖原始文件如果有的话),a追加,b二进制文件.
w = write 写
r = read 读
b = bytes 二进制
a = append 追加
读写模式类型:
- r: 只读。
- w: 只写。已存在文件将被清除。
- a: 添加。总是添加到文件尾部。
- b: 二进制模式。
- r+: 更新文件,可读写,不会截短文件。
- w+: 更新文件,可读写,清除原有内容。
- a+: 更新文件,可读写,总是在尾部添加1.使用’a’模式 ,把所有要写入文件的数据都追加到文件的末尾,即便是用了seek()指向文件特定位置(f.seek(偏移量,[起始位置])),如果文件不存在,将自动被创建。
2.使用’W’,文件若存在,首先要清空,然后重新创建.
##注意
size未指定则返回整个文件,如果文件大小>2倍内存则有问题.f.read()读到文件尾时返回""(空字串)
f.read([size])
返回一行
file.readline()
返回包含size行的列表,size 未指定则返回全部行
file.readline([size])
通过迭代器访问
for line in f:
print(line)
如果要写入字符串以外的数据,先将他转换为字符串.
f.write("us579\n")
返回一个整数,表示当前文件指针的位置(就是到文件头的比特数).
f.tell()
f.seek(偏移量,[起始位置])
用来移动文件指针
偏移量:单位:比特,可正可负
// #this is for slicing the file into segments
#文件光标位置loc
loc = 0
MSS = 150 (Maximum Segment Size)
while(loc < inf_fo.st_size):
#定位到loc
fo.seek(loc)
#这里就是read[size]一个size为MSS长度的文件即从0开始读读到149
data = fo.read(MSS)
packet = Segment(seq = seq_num , ACK = ack_value , data = data.decode('latin-1'))
file_packets.append(packet)
#加到下一个光标起始点为150
loc += MSS
seq_num += MSS
起始位置:0-文件头,默认值;1-当前位置;2-文件尾
关闭文件
在进行完一系列的以上操作,需要关闭文件才能使文件保存下来,如果不进行close再去打开文件是打不开的
f.close()