py 5.8

一、文件的打开

# f1 = open( r'd:\new 2.txt' , encoding = 'utf-8',mode = 'r')
# print(f1.read())
# f1.close()
# f1 = open('liu.txt',encoding = 'utf - 8', mode = 'r')
# print(f1.read())
# f1.close()
#一、打开文件: f1 = open('路径',encoding='编码方式',mode = '模式')
# 流程:1.打开文件,赋值给一个变量(文件句柄)  2.对该句柄进行各种操作 3.关闭
# open不是py中的关键字,是windows系统的一种打开文件的方式。
# 绝对路径:从根目录一直找到最后想要的文件路径
# f1 = open( r'd:\new 2.txt',encoding = 'utf-8',mode = 'r')
# print(f1.read())
# f1.close()
#相对路径:从当前目录找到文件
# f1 = open('a',encoding='utf-8',mode = 'r')
# print(f1.read())
# f1.close()
#编码方式:windows默认编码方式为'gbk',linux/macos默认编码方式为'utf-8'
View Code

二、模式、操作方法

#模式
#一、r      只读,默认打开方式,可省略,其它都不可省略
#rb: 用bytes类型打开文件,编码方式不用写,非文本文件,图片、视频等
#打开图片:先rb然后再wb写入再查看
#r的五种读取方法:1.read  全读
#                2. read(n)  r:按照字符个数读   rb:按照字节个数读
#                3.readline  按’行‘ 读取
#                4.readlines   以列表形式显示,每个元素是’每一行‘
#                5.for i in f1:  按行显示,但是没显示一行,上一行自动清除,不占内存
# f1 = open('liu.txt' , encoding='utf-8' , mode = 'r')
# print(f1.readline())
# print(f1.readline())
# print(f1.readline())
# f1.close()
# print(f1.read(3))
# f1.close()
# for i in f1:
#     print(i)
#r+: 读写。先读后写
#r+b: bytes类型的先读后写
#二、w     只写。当文件存在时,先清除原内容,然后写。当文件不存在时,创建文件,再写。
#    wb    bytes类型的写入
#    w+    写读,先写后读。 写完之后,光标移到了最后,所以读不到,用f1.seek(0) 按字节来调整光标。
#    w+b   bytes类型的先写后读。
#三、a     追加。当文件存在时,在后面直接追加写。当文件不存在时,创建文件然后再写。
#    ab    追加bytes. 可以直接转化:字母、数字、特殊字符。 其它都不可以。
#    a+    追加可读
#四、操作方法
#1.read
#2.readable/writeable  返回值为F/T
#3.seek(按字节调整光标位置)
#4.tell(告诉显示光标的位置,字节)
#五、打开文件的另一方法:1.可以打开多个文件  2.不用关闭文件
# with open ('liu.txt' , encoding='utf-8',mode = 'r') as f1:
#     print(f1.read())
# with open ('liu.txt' , encoding='utf-8',mode = 'r') as f1,\
#      open ('a' , encoding='utf-8',mode = 'r') as f2:
#     print(f1.read())
#     print(f2.read())                                #注意,不能打开同一名称的文件,否侧出错,需要把之前的用代码关闭。
View Code

三、文件的改

#六、文件的改
#五步:1.打开原文件  old_file,将原文件的内容读取到内存中。尽量用for读取,以免文件太大。
#      2.创建新文件new_file。用w,for循环中不清除原文件的内容。
#      3.将原文件内容按你所想的改好,然后写入新文件。
#      4.清除原文件。         os.remove()
#      5.将新文件重命名成原文件。 os.rename('新文件’,‘原文件’)
# 方法一:
# import os
# with open('liu.txt' , encoding='utf-8',mode='r') as f1,\
#     open ('change_new.txt',encoding='utf-8',mode = 'w') as f2:
#     old_content = f1.read()
#     new_content = old_content.replace('啦','哇哇哇')
#     f2.write(new_content)
# os.remove('liu.txt')
# os.rename('change_new.txt','liu.txt')
#方法二:
# import os
# with open('liu.txt' , encoding='utf-8',mode='r') as f1,\
#     open ('change_new.txt',encoding='utf-8',mode = 'w') as f2:
#     for i in f1:
#         new = i.replace('哇','呀')       #字符串的修改一定要赋给一个新的值。
#         f2.write(new)
# os.remove('liu.txt')
# os.rename('change_new.txt','liu.txt')
View Code

 

posted @ 2018-05-08 20:45  消暑酸梅粉  阅读(95)  评论(0编辑  收藏  举报