python基础——文件读写

 打开文件

内置函数open/with open 打开文件
'''open'''
f = open(r'E:\python\学习.txt', 'r', encoding='gbk')
print(f.read())
f.close()

'''with open'''
with open(r'E:\python\学习.txt', 'r', encoding='gbk') as f:  # with之后会自动关闭f,utf-8报错的话可以换gbk试下
    data = f.read()  # 读全部
    # data=f.readline() #读一行
    f.seek(0)  # read将内容全部读了出来,readline则没有读出任何内容。原因是read读完之后,文件指针到了文件的末尾,此时readline接着从这个位置开始读,肯定是没内容的。因此有时需要调整文件指针的位置
    data = f.readlines()  # 读全部到list
    print(data)

1.1 encoding:

   gbk:windows中文版的默认编码
   utf-8: 现代推荐的统一编码
   注:操作二进制文件时,无需设置编码

1.2 mode:

1.3 写入文件

write:写入内容
writelines:写入多行
 

1.4 读取内容

read:读取全部内容
readline: 读取一行
readlines:读取所有行,输出为列表

 

举例

'''open'''
f = open(r'E:\python\学习.txt', 'r', encoding='gbk')
print(f.read())
f.close()

'''with open'''
with open(r'E:\python\学习.txt', 'r', encoding='gbk') as f:  # with之后会自动关闭f,utf-8报错的话可以换gbk试下
    data = f.read()  # 读全部
    # data=f.readline() #读一行
    f.seek(0)  # read将内容全部读了出来,readline则没有读出任何内容。原因是read读完之后,文件指针到了文件的末尾,此时readline接着从这个位置开始读,肯定是没内容的。因此有时需要调整文件指针的位置
    data = f.readlines()  # 读全部到list
    print(data)

'''读写r+,覆盖写'''
with open(r'E:\python\学习.txt', 'r+') as f:
    f.write("开心")
    f.seek(0)
    print(f.read())

'''w写,清空写'''
with open(r"E:\python\学习1.txt", 'w') as f:  # 文件不存在时自动创建,清空原内容写
    f.write('柚柚长高高')

'''w+写读,清空写'''
with open(r"E:\python\学习2.txt", 'w+') as f:  # 文件不存在时自动创建,清空原内容写
    f.write('柚柚长高高')
    f.seek(0)  # 光标移动到开头,否则读不到东西
    print(f.read())

'''a追加写'''
with open(r'E:\python\学习.txt', 'a') as f:
    data = f.write("\n柚柚很可爱")

'''a+追加写读'''
with open(r'E:\python\学习.txt', 'a+') as f:
    data = f.write("\n柚柚叫妈妈")
    f.seek(0)
    print(f.read())

'''文件修改'''
with open(r'E:\python\username.txt', 'a+', encoding='utf-8') as f:
    new_str = ''
    f.seek(0)
    for i in f:
        str = "li_" + i
        new_str = new_str + str
    f.seek(0)
    f.truncate()  # 清空文件
    f.write(new_str)
    f.flush()  # 刷新缓冲区

'''备份修改'''

import os with open(r'E:\python\username.txt', 'r', encoding='utf-8') as fr, open(r'E:\python\username1.txt', 'w', encoding='utf-8') as fw: fr.seek(0) for line in fr: new_fr = line.replace('1', '') fw.write(new_fr) os.remove(r'E:\python\username.txt') os.rename(r'E:\python\username1.txt', r'E:\python\username.txt') with open(r'E:\python\username.txt', 'a+', encoding='utf-8') as f: f.seek(0) for i in f: # 文件可类似序列一样,一行行的遍历 print(i)

 

posted @ 2022-08-08 23:44  奋斗的sunny  阅读(104)  评论(0)    收藏  举报