f.close() 或者f.flush() 方法才会将内存中的数据写入到disk中
f.write(),写完之后,写在了文件缓冲;要执行f.close() or f.flush(),才可以真写入到文件中。 写缓冲和文件不一致: 1、主动f.close() 或者 f.flush() 2、写入数据量大于或者等于写缓存,写缓存同步到磁盘。
写磁盘的时间
python写需要关闭文件或者flush后才会从文件缓冲中存入磁盘
实际写入磁盘的只有155648个字节,因为缓冲区只有这么大,当我们写入内容超过这么大的时候,就会自动写入磁盘。
Python写磁盘时机
文件写入
write(str):参数为字符串
writelines(sequence of strings):参数为可迭代对象(字符串、字符串组成的元组、字符串组成的迭代器、字符串组成的列表)
f
=
open
(
'imooc.py'
,
'w'
)
f.write(
'test write'
)
f.close()
cat imooc.py
f
=
open
(
'imooc.py'
,
'w'
)
f.writelines(
'123456'
)
f.writelines((
'1'
,
'2'
,
'3'
))
f.writelines([
'1'
,
'2'
,
'3'
])
f.close()
cat imooc.py
f
=
open
(
'imooc.py'
,
'w'
)
f.write(
'111111'
)
#若不调用close-->文件为空
f.close()
#若不主动调用close,内容写入文件缓冲区BUFFER,不写入磁盘文件;调用close时内核将缓冲内容写入磁盘
缓存-->磁盘:
主动调用close()或flush()
写入数据量大于或等于写缓存
f
=
open
(
"imooc.txt"
,
"w"
)
for
i
in
range
(
10000
):
f.write(
'test write '
+
str
(i)
+
'\n'
)
#只写了一部分在磁盘
f.close()
#缓存同步到磁盘,内容全部写入
Python写入方式
写缓存相关说明:
写文件过程
文件读取方式
wirte():写入磁盘时机
当f.close()后,缓冲区中的内容全部写入内存,此时imooc.txt中已有1000行数据。
实际写入磁盘的只有155648个字节,因为缓冲区只有这么大,当我们写入内容超过这么大的时候,就会自动写入磁盘。
Python写磁盘的时机
python写磁盘时机
python 写过程与存在问题
文件写入
write(str):参数为字符串
writelines(sequence of strings):参数为可迭代对象(字符串、字符串组成的元组、字符串组成的迭代器、字符串组成的列表)
f = open('imooc.py', 'w') f.write('test write') f.close() cat imooc.py f = open('imooc.py', 'w') f.writelines('123456') f.writelines(('1','2','3')) f.writelines(['1','2','3']) f.close() cat imooc.py f = open('imooc.py', 'w') f.write('111111') #若不调用close-->文件为空 f.close() #若不主动调用close,内容写入文件缓冲区BUFFER,不写入磁盘文件;调用close时内核将缓冲内容写入磁盘
缓存-->磁盘:
主动调用close()或flush()
写入数据量大于或等于写缓存
f = open("imooc.txt", "w") for i in range(10000): f.write('test write ' + str(i) + '\n') #只写了一部分在磁盘 f.close() #缓存同步到磁盘,内容全部写入
Python写文件过程:
文件写过程与存在问题
文件写入方式:
write(str):将字符串写入文件
wrtielines(sequence of strings):写多行到文件,参数为可迭代的对象
python写文件过程