西天取经python之路 DAY(六)

停更了将近一个礼拜。天知道我经历了啥。

迷茫是一个人在正常不过的状态了,陷进去很容易,想出来却很难。

谁的青春不迷茫,重要的是早点认清自己。

=========================================分割线================================================

第一个程序

屏幕输入-syswrite

# encoding: utf-8
'''
@author: ccq
@file: syswrite.py
@time: 2019/6/5 16:21
'''
# 屏幕输入
import sys, time

sys.stdout.write("hello")
sys.stdout.write(" + ")
sys.stdout.write("hello")

print("")
print("hello")
print(" + ")
print("hello")

# 制作一个类似的进度条
for i in range(20):
    sys.stdout.write("#")
    sys.stdout.flush()
    time.sleep(0.1)

#其实想了很久也不知道这个代码到底应该取啥名字。反正就是对比print输出和sys.stdout.write输出的不同。print输出完直接换行,sys.stdout.write输出完不换行。(比java里的system.out.print和system.out.println差异性大一点)

#其次就是flush操作。flush是一个刷新缓冲区的操作。当往文件中写入的时候(或者使用sys.stdout.write输出的时候),写的内容会存放在缓冲区,等到一定量的时候再一起写入文件(或者输出出来)。这意味着你没有办法立刻检查是否写入了文件(因为不会显示)。因此可以使用flush操作直接刷新,让它立即显示。

#最后一段代码是做了一个用#表示的进度条。time.sleep是延时作用。sys.stdout.write方法输出的时候会不显示(原因如上),所以使用sys.stdout.flush刷新。

#发现了一个很奇怪的事情,我的电脑去掉sys.stdout.flush这行一样是进度条的效果。有没有大佬可以解释一下?

=========================================分割线================================================

第二个程序

文件操作3-fileoperation3

# encoding: utf-8
'''
@author: ccq
@file: fileoperation3.py
@time: 2019/6/5 19:51
'''
# 文件操作3

# truncate截断方法
f = open("yesterday", "a", encoding="utf-8")
f.seek(50)
f.truncate(10)

# 文件读写,既可以读又可以写(写只能追加)
f2 = open("yesterday2", "r+", encoding="utf-8")
print(f2.readline())
print(f2.readline())
print(f2.readline())
f2.write("=========================")
print(f2.readline())

# 文件写读(用处不大)
f3 = open("yesterday3", "w+", encoding="utf-8")
f3.write("aaaaaaaaaaaaaaaaaa\n")
f3.write("aaaaaaaaaaaaaaaaaa\n")
f3.write("aaaaaaaaaaaaaaaaaa\n")
print(f3.tell())
f3.seek(10)
print(f3.tell())
print(f3.readline())
f3.write("=========================")
f3.close()

# 二进制文件(网络传输只能用二进制打开)
f4 = open("yesterday4", "rb")
print(f4.readline())
print(f4.readline())
print(f4.readline())
f4.close()
f5 = open("yesterday5", "wb")
f5.write("hello".encode())
f5.close()

#第一段代码主要讲的是truncate方法,就是截断方法。我本来想把光标移动到50,然后再开始截断,后来发现没有效果。truncate方法一定是从头开始截断,上面代码中就是从头开始截断10。

#第二段代码文件读写。这时候既可以读文件又可以写文件,但是写文件只能是追加。不能在中间改。我的代码本来是读三行然后写入一个分隔符,然后再打印分隔符。最后发现打印了前四行,并且文件最后追加了一行。

#文件读写用处不大,就不详细说了。

#二进制读,和写。二进制例如网络传输和视频文件,都要用的到,所以还比较重要。

=========================================分割线================================================

第三个程序

文件更新-fileupdate

# encoding: utf-8
'''
@author: ccq
@file: fileupdate.py
@time: 2019/6/5 20:49
'''
# 文件修改

fread = open("fread", "r", encoding="utf-8")
fwrite = open("fwrite", "w", encoding="utf-8")
for line in fread:
    if "你给我听好" in line:
        line = line.replace("你给我听好", "你给我认真的听好")
    fwrite.write(line)

fread.close()
fwrite.close()

#其实不是真正意义上的文件更新,因为是把旧文件的读出来,然后写到新文件中去。

=========================================分割线================================================

今天就到这里,明天继续。青春别迷茫,找准方向,奋斗吧。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值