文件操作注意点
注意点:
1. for line in file --> 会将偏移量移到末尾
2. buffering=1 --> 缓冲区中遇到换行就刷新,即向磁盘中写入
3. 读操作结束后,文本偏移量就会移动到读操作结束位置
"""
编写一个程序,循环不停的写入日志(my.log)。
每2秒写入一行,要求每写入一行都要显示出来。
结束程序后(强行结束),重新运行要求继续往下写,序号衔接
"""
import time
# log = open("my.log","a+",buffering=1)
# 用with方法可以保证强制结束程序后,关闭文件
with open("my.log","a+",buffering=1) as log:
while True:
# 记录行数
line_count = 1
# 文件偏移量移动到开头
log.seek(0)
# 循环计数,计算行数
for line in log:
line_count+=1
#获取当前时间
date = time.ctime()
# 拼接内容
content = "%d. %s\n" %(line_count,date)
# 写入缓冲区
log.write(content)
# 每隔两秒执行一次
time.sleep(2)
"""
目录文件的合并
"""
import os
fw = open("union.txt","w",encoding="utf-8")
for file in os.listdir("abc"):
with open("abc/"+file,encoding="utf-8") as fr:
for line in fr:
fw.write(line)
fw.close()
当前目录,上一级目录的理解
假设我们有以下目录结构:
在union.py文件中,我们要访问union.txt,可以写相对路径:union.txt
我们要访问seek.txt,可以写相对路径:abc/seek.txt