Python学习日记-13-文件操作

#能调用方法的一定是对象
#*************************

poem = open('南歌子.txt','r',encoding='utf8').read()      #'r'读模式,'read'读出来,文件要加后缀名
print(poem)

#**********读***************

f = open('南歌子.txt','r',encoding='utf8')   #读模式打开
poem = f.read(10)     #读方式操作   操作 十个字符
print(poem)         #            操作
f.close()           #关闭文件     关闭   一定关闭

#**********写***************

f = open('南歌子.txt','w',encoding='utf8')   #'w'写模式打开  在创建对象的同时删除原有内容  如果没有此文件则新创立一个文件
f.write('xxx\t')    #写方式操作   操作
f.write('aa  a')    #紧贴上一串字符显示
f.close()           #关闭文件     关闭  一定关闭

#**********追加*************

f = open('南歌子.txt','a',encoding='utf8')     #'a'追加模式打开  以后的写操作,写入的内容紧贴原有最后字符
f.write('hello')
f.close()

#***************************

f = open('南歌子.txt','r',encoding='utf8')

print(f.readline())      #读第一个换行符之前的内容
print(f.readline())      #光标已经到第二行,则这次会打印第二个光标和第一个光标之间的内容
print(f.readline())
print(f.readline(3))     #打印第四个和第五个换行符之间前三个字符
f.close()

#***************************

f = open('南歌子.txt','r',encoding='utf8')

print(f.readlines())
'''
['南歌子词二首 / 新添声杨柳枝词\n',
'【作者】温庭筠 【朝代】唐\n',
'\n',
'一尺深红胜曲尘,天生旧物不如新。\n',
'\n', '合欢桃核终堪恨,里许元来别有人。\n',
'\n', '井底点灯深烛伊,共郎长行莫围棋。\n',
'\n',
'玲珑骰子安红豆,入骨相思知不知。']
'''
f.close()
列表形式返回

#*****************************

f = open('南歌子.txt','r',encoding='utf8')

for i in f.readlines():
    print(i.strip())           #print本身存在自动换行,所以把原有换行符去掉
f.close()

#*****************************

f = open('南歌子.txt','r',encoding='utf8')

num = 0
for i in f.readlines():
    num += 1
    if num == 9:
        i = ''.join([i.strip(),'lll'])   #字符串拼接最好用join
    print(i.strip())

f.close()

#***********************重要

f = open('南歌子.txt','r',encoding='utf8')

for i in enumerate:                       #迭代器 节省内存 for内部将 f 对象做成迭代器,用一行去一行
    print(i.strip())

f.close()

#***********************重要

f = open('南歌子.txt','r',encoding='utf8')

print(f.tell())              #返回当前光标位置
print(f.read(1))
print(f.tell())              #一个中文3个字节

f.seek(0)                    #重要:调整光标位置
print(f.read(1))

#**********************

import time
f = open('南歌子.txt','r',encoding='utf8')

f.flush()   #将缓存里的内容更新到磁盘中(做进度条)

*******************
import time
for i in range(30):
    print('*',end='',flush=True)    #进度条
    time.sleep(1)

#******************************

f = open('南歌子.txt','a',encoding='utf8')

f.truncate(47)                #截断
f.close()

#*****************************

f = open('南歌子.txt','r+',encoding='utf8')      #读写,,写的内容加到最后

print(f.readline())
f.write('lllll')

f.close()

#*******************************

f = open('南歌子.txt','w+',encoding='utf8')         #写读,,先截断

print(f.readline())                                 #第一行为空
f.write('lllll')
f.seek(0)                                         #  光标返回到最开始
print(f.readline())

f.close()

#*************终极问题*****************修改文件

f = open('南歌子.txt','r',encoding='utf8')
q = open('南歌子2.txt','w',encoding='utf8')    #无法对源文件修改,只能取值然后对变量修改,后存入新的文件

num = 0
for i in f:
    num += 1
    if num == 5:                                #第五行进行修改
        i = ''.join([i.strip(),'lll\n'])        #在第五行后面加‘lll’
    q.write(i)                                  #写入新文件

f.close()
q.close()






你可能感兴趣的:(Python学习日记-13-文件操作)