flush(): 将数据从内存同步到磁盘

smoke@smoke-GS70-2PC-Stealth:~/PycharmProjects/pythonProject/lean_python$ pwd
/home/smoke/PycharmProjects/pythonProject/lean_python
smoke@smoke-GS70-2PC-Stealth:~/PycharmProjects/pythonProject/lean_python$ ls
 3menu_new.py    小重山              continue.py          file_operation.py   menu.py            test.py
 3menu.py        小重山2             dictionary.py        list_lesson.py      shopping_cart.py   tuple.py
 对齐.py         assignment.py       encode_py3.py        login.py            shopping.py
 格式化输出.py  'code template.py'   file_operation2.py   login_while.py      String.py
smoke@smoke-GS70-2PC-Stealth:~/PycharmProjects/pythonProject/lean_python$ python3.8
Python 3.8.5 (default, Jul 28 2020, 12:59:40) 
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> f=open('hello','w')
>>> f.write('smoke is 35')
11

smoke@smoke-GS70-2PC-Stealth:~/PycharmProjects/pythonProject/lean_python$ ls
 3menu_new.py    小重山              continue.py          file_operation.py   login_while.py     String.py
 3menu.py        小重山2             dictionary.py        hello               menu.py            test.py
 对齐.py         assignment.py       encode_py3.py        list_lesson.py      shopping_cart.py   tuple.py
 格式化输出.py  'code template.py'   file_operation2.py   login.py            shopping.py
smoke@smoke-GS70-2PC-Stealth:~/PycharmProjects/pythonProject/lean_python$ cat hello    #写完之后并没有保存到硬盘

>>> f.write('hello world')
11

smoke@smoke-GS70-2PC-Stealth:~/PycharmProjects/pythonProject/lean_python$ cat hello 

>>> f.flush()    #将数据从内存同步到磁盘

smoke@smoke-GS70-2PC-Stealth:~/PycharmProjects/pythonProject/lean_python$ cat hello 
smoke is 35hello worldsmoke@smoke-GS70-2PC-Stealth:~/PycharmProjects/pythonProject/lean_python$ 
进度条效果
#!/usr/bin/env python3.8
# __author: "smoke"
# date: 2020/12/14 下午9:59

import sys,time
for i in range(30):
    sys.stdout.write("*")    #终端输出

/home/smoke/PycharmProjects/pythonProject/venv/bin/python /home/smoke/PycharmProjects/pythonProject/lean_python/file_operation.py
******************************
Process finished with exit code 0

#!/usr/bin/env python3.8
# __author: "smoke"
# date: 2020/12/14 下午9:59

import sys,time
for i in range(30):
    sys.stdout.write("*")
    time.sleep(0.2)

/home/smoke/PycharmProjects/pythonProject/venv/bin/python /home/smoke/PycharmProjects/pythonProject/lean_python/file_operation.py
******************************
Process finished with exit code 0

#!/usr/bin/env python3.8
# __author: "smoke"
# date: 2020/12/14 下午9:59

import sys,time
for i in range(30):
    sys.stdout.write("*")
    sys.stdout.flush()    #将内存数据同步到磁盘,终端也可以认为是文件写入
    time.sleep(0.2)

/home/smoke/PycharmProjects/pythonProject/venv/bin/python /home/smoke/PycharmProjects/pythonProject/lean_python/file_operation.py
******************************
Process finished with exit code 0

#!/usr/bin/env python3.8
# __author: "smoke"
# date: 2020/12/14 下午9:59

import sys,time
for i in range(30):
    sys.stdout.write("*")
    sys.stdout.flush()
    time.sleep(0.1)

/home/smoke/PycharmProjects/pythonProject/venv/bin/python /home/smoke/PycharmProjects/pythonProject/lean_python/file_operation.py
******************************
Process finished with exit code 0

#!/usr/bin/env python3.8
# __author: "smoke"
# date: 2020/12/14 下午9:59

import sys,time
for i in range(30):
    print('*',end='')    #end=''不换行
    time.sleep(0.1)

/home/smoke/PycharmProjects/pythonProject/venv/bin/python /home/smoke/PycharmProjects/pythonProject/lean_python/file_operation.py
******************************
Process finished with exit code 0

#!/usr/bin/env python3.8
# __author: "smoke"
# date: 2020/12/14 下午9:59

import sys,time
for i in range(30):
    print('*',end='',flush=True)    #flush=True立刻刷新
    time.sleep(0.1)

/home/smoke/PycharmProjects/pythonProject/venv/bin/python /home/smoke/PycharmProjects/pythonProject/lean_python/file_operation.py
******************************
Process finished with exit code 0

在pycharmg工作目录创建名为小重山.txt文件,输入如下内容;

smoke@smoke-GS70-2PC-Stealth:~/PycharmProjects/pythonProject/lean_python$ vim 小重山
昨夜寒蛩不住鸣。
惊回千里梦,已三更。
起来独自绕阶行。
人悄悄,帘外月胧明。
白首为功名,旧山松竹老,阻归程。
欲将心事付瑶琴。
知音少,弦断有谁听。

truncate(): 清空文件内容

#!/usr/bin/env python3.8
# __author: "smoke"
# date: 2020/12/14 下午9:59

f = open("/home/smoke/PycharmProjects/pythonProject/lean_python/小重山",'w',encoding='utf8')

f.truncate()    #清空文件内容,不加参数从0光标开始清空
f.close()

/home/smoke/PycharmProjects/pythonProject/venv/bin/python /home/smoke/PycharmProjects/pythonProject/lean_python/file_operation.py

Process finished with exit code 0

查看小重山.txt文件内容;

smoke@smoke-GS70-2PC-Stealth:~/PycharmProjects/pythonProject/lean_python$ cat 小重山

修改小重山.txt文件内容;

smoke@smoke-GS70-2PC-Stealth:~/PycharmProjects/pythonProject/lean_python$ vim 小重山
昨夜寒蛩不住鸣。
惊回千里梦,已三更。
起来独自绕阶行。
人悄悄,帘外月胧明。
白首为功名,旧山松竹老,阻归程。
欲将心事付瑶琴。
知音少,弦断有谁听。

修改脚本

#!/usr/bin/env python3.8
# __author: "smoke"
# date: 2020/12/14 下午9:59

f = open("/home/smoke/PycharmProjects/pythonProject/lean_python/小重山",'w',encoding='utf8')

f.truncate(5)
f.close()

/home/smoke/PycharmProjects/pythonProject/venv/bin/python /home/smoke/PycharmProjects/pythonProject/lean_python/file_operation.py

Process finished with exit code 0

查看小重山.txt文件内容;

smoke@smoke-GS70-2PC-Stealth:~/PycharmProjects/pythonProject/lean_python$ cat 小重山

修改小重山.txt文件内容;

smoke@smoke-GS70-2PC-Stealth:~/PycharmProjects/pythonProject/lean_python$ vim 小重山
昨夜寒蛩不住鸣。
惊回千里梦,已三更。
起来独自绕阶行。
人悄悄,帘外月胧明。
白首为功名,旧山松竹老,阻归程。
欲将心事付瑶琴。
知音少,弦断有谁听。

修改脚本

#!/usr/bin/env python3.8
# __author: "smoke"
# date: 2020/12/14 下午9:59

f = open("/home/smoke/PycharmProjects/pythonProject/lean_python/小重山",'a',encoding='utf8')

f.truncate(5)
f.close()

/home/smoke/PycharmProjects/pythonProject/venv/bin/python /home/smoke/PycharmProjects/pythonProject/lean_python/file_operation.py

Process finished with exit code 0

查看小重山.txt文件内容;

smoke@smoke-GS70-2PC-Stealth:~/PycharmProjects/pythonProject/lean_python$ cat 小重山
昨�smoke@smoke-GS70-2PC-Stealth:~/PycharmProjects/pythonProject/lean_python$ 

修改小重山.txt文件内容;

smoke@smoke-GS70-2PC-Stealth:~/PycharmProjects/pythonProject/lean_python$ vim 小重山
昨夜寒蛩不住鸣。
惊回千里梦,已三更。
起来独自绕阶行。
人悄悄,帘外月胧明。
白首为功名,旧山松竹老,阻归程。
欲将心事付瑶琴。
知音少,弦断有谁听。

修改脚本

#!/usr/bin/env python3.8
# __author: "smoke"
# date: 2020/12/14 下午9:59

f = open("/home/smoke/PycharmProjects/pythonProject/lean_python/小重山",'w',encoding='utf8')

f.truncate(1)
f.close()

/home/smoke/PycharmProjects/pythonProject/venv/bin/python /home/smoke/PycharmProjects/pythonProject/lean_python/file_operation.py

Process finished with exit code 0

查看小重山.txt文件内容;

smoke@smoke-GS70-2PC-Stealth:~/PycharmProjects/pythonProject/lean_python$ cat 小重山

修改小重山.txt文件内容;

smoke@smoke-GS70-2PC-Stealth:~/PycharmProjects/pythonProject/lean_python$ vim 小重山
昨夜寒蛩不住鸣。
惊回千里梦,已三更。
起来独自绕阶行。
人悄悄,帘外月胧明。
白首为功名,旧山松竹老,阻归程。
欲将心事付瑶琴。
知音少,弦断有谁听。

修改脚本

#!/usr/bin/env python3.8
# __author: "smoke"
# date: 2020/12/14 下午9:59

f = open("/home/smoke/PycharmProjects/pythonProject/lean_python/小重山",'w',encoding='utf8')

f.truncate(5)
f.close()

/home/smoke/PycharmProjects/pythonProject/venv/bin/python /home/smoke/PycharmProjects/pythonProject/lean_python/file_operation.py

Process finished with exit code 0

查看小重山.txt文件内容;

smoke@smoke-GS70-2PC-Stealth:~/PycharmProjects/pythonProject/lean_python$ cat 小重山

修改小重山.txt文件内容;

smoke@smoke-GS70-2PC-Stealth:~/PycharmProjects/pythonProject/lean_python$ vim 小重山
昨夜寒蛩不住鸣。
惊回千里梦,已三更。
起来独自绕阶行。
人悄悄,帘外月胧明。
白首为功名,旧山松竹老,阻归程。
欲将心事付瑶琴。
知音少,弦断有谁听。

修改脚本

#!/usr/bin/env python3.8
# __author: "smoke"
# date: 2020/12/14 下午9:59

f = open("/home/smoke/PycharmProjects/pythonProject/lean_python/小重山",'w',encoding='utf8')

f.truncate(5)
f.write('hello')
f.close()

/home/smoke/PycharmProjects/pythonProject/venv/bin/python /home/smoke/PycharmProjects/pythonProject/lean_python/file_operation.py

Process finished with exit code 0

查看小重山.txt文件内容;

smoke@smoke-GS70-2PC-Stealth:~/PycharmProjects/pythonProject/lean_python$ cat 小重山
hellosmoke@smoke-GS70-2PC-Stealth:~/PycharmProjects/pythonProject/lean_python$ 

修改小重山.txt文件内容;

smoke@smoke-GS70-2PC-Stealth:~/PycharmProjects/pythonProject/lean_python$ vim 小重山
昨夜寒蛩不住鸣。
惊回千里梦,已三更。
起来独自绕阶行。
人悄悄,帘外月胧明。
白首为功名,旧山松竹老,阻归程。
欲将心事付瑶琴。
知音少,弦断有谁听。

修改脚本

#!/usr/bin/env python3.8
# __author: "smoke"
# date: 2020/12/14 下午9:59

f = open("/home/smoke/PycharmProjects/pythonProject/lean_python/小重山",'w',encoding='utf8')

f.truncate(5)
f.write('hello world')
f.close()

/home/smoke/PycharmProjects/pythonProject/venv/bin/python /home/smoke/PycharmProjects/pythonProject/lean_python/file_operation.py

Process finished with exit code 0

查看小重山.txt文件内容;

smoke@smoke-GS70-2PC-Stealth:~/PycharmProjects/pythonProject/lean_python$ cat 小重山
hello worldsmoke@smoke-GS70-2PC-Stealth:~/PycharmProjects/pythonProject/lean_python$ 

修改小重山.txt文件内容;

昨夜寒蛩不住鸣。
惊回千里梦,已三更。
起来独自绕阶行。
人悄悄,帘外月胧明。
白首为功名,旧山松竹老,阻归程。
欲将心事付瑶琴。
知音少,弦断有谁听。

修改脚本

#!/usr/bin/env python3.8
# __author: "smoke"
# date: 2020/12/14 下午9:59

f = open("/home/smoke/PycharmProjects/pythonProject/lean_python/小重山",'w',encoding='utf8')

f.truncate(5)
f.write('hello world')
f.truncate(5)
f.close()

/home/smoke/PycharmProjects/pythonProject/venv/bin/python /home/smoke/PycharmProjects/pythonProject/lean_python/file_operation.py

Process finished with exit code 0

查看小重山.txt文件内容;

smoke@smoke-GS70-2PC-Stealth:~/PycharmProjects/pythonProject/lean_python$ cat 小重山
hellosmoke@smoke-GS70-2PC-Stealth:~/PycharmProjects/pythonProject/lean_python$ 

修改小重山.txt文件内容;

smoke@smoke-GS70-2PC-Stealth:~/PycharmProjects/pythonProject/lean_python$ vim 小重山
昨夜寒蛩不住鸣。
惊回千里梦,已三更。
起来独自绕阶行。
人悄悄,帘外月胧明。
白首为功名,旧山松竹老,阻归程。
欲将心事付瑶琴。
知音少,弦断有谁听。

修改脚本

#!/usr/bin/env python3.8
# __author: "smoke"
# date: 2020/12/14 下午9:59

f = open("/home/smoke/PycharmProjects/pythonProject/lean_python/小重山",'a',encoding='utf8')

f.truncate(5)
f.close()

/home/smoke/PycharmProjects/pythonProject/venv/bin/python /home/smoke/PycharmProjects/pythonProject/lean_python/file_operation.py

Process finished with exit code 0

查看小重山.txt文件内容;

smoke@smoke-GS70-2PC-Stealth:~/PycharmProjects/pythonProject/lean_python$ cat 小重山
昨�s
moke@smoke-GS70-2PC-Stealth:~/PycharmProjects/pythonProject/lean_python$

isatty(): 判断是不是一个终端

#!/usr/bin/env python3.8
# __author: "smoke"
# date: 2020/12/14 下午9:59

f = open("/home/smoke/PycharmProjects/pythonProject/lean_python/小重山",'a',encoding='utf8')

print(f.isatty())   #判断是不是一个终端

/home/smoke/PycharmProjects/pythonProject/venv/bin/python /home/smoke/PycharmProjects/pythonProject/lean_python/file_operation.py
False

Process finished with exit code 0

修改小重山.txt文件内容;

smoke@smoke-GS70-2PC-Stealth:~/PycharmProjects/pythonProject/lean_python$ vim 小重山
昨夜寒蛩不住鸣。
惊回千里梦,已三更。
起来独自绕阶行。
人悄悄,帘外月胧明。
白首为功名,旧山松竹老,阻归程。
欲将心事付瑶琴。
知音少,弦断有谁听。

r+: 读写模式

#!/usr/bin/env python3.8
# __author: "smoke"
# date: 2020/12/14 下午9:59

f = open("/home/smoke/PycharmProjects/pythonProject/lean_python/小重山",'r+',encoding='utf8')
print(f.readline())

/home/smoke/PycharmProjects/pythonProject/venv/bin/python /home/smoke/PycharmProjects/pythonProject/lean_python/file_operation.py
昨夜寒蛩不住鸣。


Process finished with exit code 0

#!/usr/bin/env python3.8
# __author: "smoke"
# date: 2020/12/14 下午9:59

f = open("/home/smoke/PycharmProjects/pythonProject/lean_python/小重山",'r+',encoding='utf8')
print(f.readline())
f.write('岳飞')

f.close()

/home/smoke/PycharmProjects/pythonProject/venv/bin/python /home/smoke/PycharmProjects/pythonProject/lean_python/file_operation.py
昨夜寒蛩不住鸣。


Process finished with exit code 0

查看小重山.txt文件内容;

smoke@smoke-GS70-2PC-Stealth:~/PycharmProjects/pythonProject/lean_python$ cat 小重山
昨夜寒蛩不住鸣。
惊回千里梦,已三更。
起来独自绕阶行。
人悄悄,帘外月胧明。
白首为功名,旧山松竹老,阻归程。
欲将心事付瑶琴。
知音少,弦断有谁听。
岳飞smoke@smoke-GS70-2PC-Stealth:~/PycharmProjects/pythonProject/lean_python$ 

w+: 写读模式

#!/usr/bin/env python3.8
# __author: "smoke"
# date: 2020/12/14 下午9:59

f = open("/home/smoke/PycharmProjects/pythonProject/lean_python/小重山",'w+',encoding='utf8')
print(f.readline())
f.write('岳飞')
print(f.readline())

f.close()

/home/smoke/PycharmProjects/pythonProject/venv/bin/python /home/smoke/PycharmProjects/pythonProject/lean_python/file_operation.py



Process finished with exit code 0

查看小重山.txt文件内容;

smoke@smoke-GS70-2PC-Stealth:~/PycharmProjects/pythonProject/lean_python$ cat 小重山
岳飞smoke@smoke-GS70-2PC-Stealth:~/PycharmProjects/pythonProject/lean_python$ 

修改脚本

#!/usr/bin/env python3.8
# __author: "smoke"
# date: 2020/12/14 下午9:59

f = open("/home/smoke/PycharmProjects/pythonProject/lean_python/小重山",'w+',encoding='utf8')
print(f.readline())
f.write('岳飞')
print(f.tell())
print(f.readline())

f.close()

/home/smoke/PycharmProjects/pythonProject/venv/bin/python /home/smoke/PycharmProjects/pythonProject/lean_python/file_operation.py

6


Process finished with exit code 0

查看小重山.txt文件内容;

smoke@smoke-GS70-2PC-Stealth:~/PycharmProjects/pythonProject/lean_python$ cat 小重山
岳飞smoke@smoke-GS70-2PC-Stealth:~/PycharmProjects/pythonProject/lean_python$ 

修改脚本

#!/usr/bin/env python3.8
# __author: "smoke"
# date: 2020/12/14 下午9:59

f = open("/home/smoke/PycharmProjects/pythonProject/lean_python/小重山",'w+',encoding='utf8')
print(f.readline())
f.write('岳飞')
print(f.tell())
print(f.readline())
f.seek(0)

f.close()

/home/smoke/PycharmProjects/pythonProject/venv/bin/python /home/smoke/PycharmProjects/pythonProject/lean_python/file_operation.py

6


Process finished with exit code 0

修改小重山.txt文件内容;

smoke@smoke-GS70-2PC-Stealth:~/PycharmProjects/pythonProject/lean_python$ vim 小重山
昨夜寒蛩不住鸣。
惊回千里梦,已三更。
起来独自绕阶行。
人悄悄,帘外月胧明。
白首为功名,旧山松竹老,阻归程。
欲将心事付瑶琴。
知音少,弦断有谁听。  

a+

#!/usr/bin/env python3.8
# __author: "smoke"
# date: 2020/12/14 下午9:59

f = open("/home/smoke/PycharmProjects/pythonProject/lean_python/小重山",'a+',encoding='utf8')
print(f.readline())    #光标移动到最后读,读不到任何内容

f.close()

/home/smoke/PycharmProjects/pythonProject/venv/bin/python /home/smoke/PycharmProjects/pythonProject/lean_python/file_operation.py


Process finished with exit code 0

#!/usr/bin/env python3.8
# __author: "smoke"
# date: 2020/12/14 下午9:59

f = open("/home/smoke/PycharmProjects/pythonProject/lean_python/小重山",'a+',encoding='utf8')
print(f.tell())
print(f.readline())

f.close()

/home/smoke/PycharmProjects/pythonProject/venv/bin/python /home/smoke/PycharmProjects/pythonProject/lean_python/file_operation.py
217


Process finished with exit code 0

#!/usr/bin/env python3.8
# __author: "smoke"
# date: 2020/12/14 下午9:59

f = open("/home/smoke/PycharmProjects/pythonProject/lean_python/小重山",'r+',encoding='utf8')
print(f.tell())
print(f.readline())

f.close()

/home/smoke/PycharmProjects/pythonProject/venv/bin/python /home/smoke/PycharmProjects/pythonProject/lean_python/file_operation.py
0
昨夜寒蛩不住鸣。


Process finished with exit code 0

终极问题:修改某行面临的问题 

#!/usr/bin/env python3.8
# __author: "smoke"
# date: 2020/12/14 下午9:59

f = open("/home/smoke/PycharmProjects/pythonProject/lean_python/小重山",'r+',encoding='utf8')

number = 0
for line in f:
    number += 1
    if number == 6:
        f.write('smoke')

f.close()

/home/smoke/PycharmProjects/pythonProject/venv/bin/python /home/smoke/PycharmProjects/pythonProject/lean_python/file_operation.py

Process finished with exit code 0

查看小重山.txt文件内容;

smoke@smoke-GS70-2PC-Stealth:~/PycharmProjects/pythonProject/lean_python$ cat 小重山
昨夜寒蛩不住鸣。
惊回千里梦,已三更。
起来独自绕阶行。
人悄悄,帘外月胧明。
白首为功名,旧山松竹老,阻归程。
欲将心事付瑶琴。
知音少,弦断有谁听。
smokesmoke@smoke-GS70-2PC-Stealth:~/PycharmProjects/pythonProject/lean_python$ 

修改小重山.txt文件内容;

smoke@smoke-GS70-2PC-Stealth:~/PycharmProjects/pythonProject/lean_python$ vim 小重山
昨夜寒蛩不住鸣。
惊回千里梦,已三更。
起来独自绕阶行。
人悄悄,帘外月胧明。
白首为功名,旧山松竹老,阻归程。
欲将心事付瑶琴。
知音少,弦断有谁听。

修改脚本

#!/usr/bin/env python3.8
# __author: "smoke"
# date: 2020/12/14 下午9:59

f = open("/home/smoke/PycharmProjects/pythonProject/lean_python/小重山",'r+',encoding='utf8')

number = 0
for line in f:
    number += 1
    if number == 3:
        f.write('smoke')

f.close()

/home/smoke/PycharmProjects/pythonProject/venv/bin/python /home/smoke/PycharmProjects/pythonProject/lean_python/file_operation.py

Process finished with exit code 0

查看小重山.txt文件内容;

smoke@smoke-GS70-2PC-Stealth:~/PycharmProjects/pythonProject/lean_python$ cat 小重山
昨夜寒蛩不住鸣。
惊回千里梦,已三更。
起来独自绕阶行。
人悄悄,帘外月胧明。
白首为功名,旧山松竹老,阻归程。
欲将心事付瑶琴。
知音少,弦断有谁听。
smokesmoke@smoke-GS70-2PC-Stealth:~/PycharmProjects/pythonProject/lean_python$