##默认创建文件的时候就会把内容清空,再写内容
# r是读,w是写(文件不存在,会创建),a是追加
# data = open('小重山2','w',encoding='utf8')
# #读取文件内容
# # f = data.read(5)
# # print(f)
#
# #覆盖原文件,不换行输出,‘\n’换行
# data.write('haha \n')
# data.write('hehe')
# #关闭文件
# data.close()

# f = open('小重山','w',encoding='utf8')

#取出第一行和第二行
# print(f.readline())
#
# print(f.readline())
#取出所有行,形成一个列表
#print(f.readlines())

#在第6行后面添加字符串
'''
num = 0
for i in f.readlines():
    num +=1
    if num == 5:
        #join拼接字符串
        i = ''.join([i.strip(),'iiiii'])
        #i = i.strip() + 'iiiii'
    print(i.strip())
'''

#这是for内部将f对象做成一个迭代器,用一行取一行
# for i in f:
#     print(i.strip())
# f.close()

#tell光标的位置
# print(f.tell())
# print(f.read(2))
# print(f.tell())
#
# #调光标位置
# f.seek(0)
# print(f.read(4))

#屏幕一个一个地输出
# import sys,time
# for i in range(30):
#     sys.stdout.write("❤")
#     sys.stdout.flush()
#     time.sleep(0.2)

# "r+" 可读可写,给文件写内容,在后面追加
# "w+"先把文件清空后,再写内容,内容写到哪,光标停在哪
# "a+" 光标在最后
# f = open('小重山','a+',encoding='utf8')
#
# print(f.readline())
# f.write("hello python")
# print(f.tell())
# f.seek(0)
# print(f.readline())
# #截取前10个字符
# #f.truncate(10)
#
# f.close()

#修改文本内容,只能新建一个文件修改
#打开2个文件
'''
f_read = open('小重山','r',encoding='utf8')
f_write = open('小重山2','w',encoding='utf8')

num = 0
for line in f_read:
    num +=1
    if num == 6:
        line = ''.join([line.strip(),'林小雪\n'])
    f_write.write(line)

f_read.close()
f_write.close()

'''
#打开文件另一种方法,可以打开多个文件,不用使用.close()关闭
#with open('小重山','r',encoding='utf8') as f:
#     for i in f:
#         print(i.strip())

小重山文件:

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