python成长之路五-文件操作

1,文件操作

f = open("D:\种子.txt",encoding="utf-8",mode="r")
# 打开一个种子.txt文件,权限按操作为只读模式

f = open("D:\种子.txt","r",encoding="utf-8")
# 简写,"r"也可以不写,默认为只读

  读方法:

    1,read  # r模式 ,按照字符读取。

     

f =open("文件操作1",encoding="utf-8",mode="r")
content = f.read(5) # 读取文件里的5个字符
print(content)
f.close()

    2,readline  # 按行读取

 

f = open("文件操作1",encoding="utf-8",mode="r")
print(f.readline()) # 打印第一行字符串
f.close()

    3,readlines  #按行读取,返回一个列表

 

f = open("文件操作1",encoding="utf-8",mode="r")
content = f.readlines()
for i in range(len(content)):  # 循环列表
    content[i] = content[i].strip()  # 通过索引去掉每个元素的空格跟换行符
print(content)
f.close()

    4,文件较大,通过for循环遍历每行字符串

 

f = open("文件操作1",encoding="utf-8")
for i in f:
    print(i.strip())
f.close()

    5,rb  文件凡是操作带b字母,都是与非文字类文件相关的。

 

f = open(r"D:\Qishijihua\视频\day08\day08\美女1.jpg",mode="rb")  # r 为转义字符
content = f.read()
print(content)
f.close()

    6,r+  读写:先读后写

 

f = open("文件操作1",encoding="utf-8",mode="r+")  
content = f.read()  # 先读
print(content)
f.write("666")  # 再写
f.close()
# 如果不读直接写会覆盖

  写模式

    1,w  没有文件,创建文件再写入。有文件清空,后写入。

 

f = open("种子.txt",encoding="utf-8",mode="w")
f.write("www.hao123.com")
f.close()

 

    2,wb  非文字类写入  

  

f = open(r"D:\Qishijihua\视频\day08\day08\美女1.jpg",mode="rb")
content = f.read()
print(content)
f1 = open("美女2.jpg",mode="wb")
f1.write(content)
f.close()
f1.close()

 

    3,w+  写读

 

f = open("文件操作2",encoding="utf8",mode="w+")
f.write("我爱python")
content = f.read()
print(content)
f.close()

 

  追加

    1,a  没有文件创建文件也要写。有文件直接在文件后面追加

 

f = open("文件操作2",encoding="utf-8",mode="a")
f.write("\n我爱北京天安门")
f.close()

    2,a+  写读

f = open("文件操作1",encoding="utf-8",mode="a+")
content = f.write("\n天安门上太阳升")
print(content)
f.close()

其他方法:

  1,seek  调整光标,seek(0)调整到开始,seek(0,2)调整到结尾。

  2,readale  是否可读

  3,writable  是否可写

  4,with 主动关闭文件句柄

  5,os.remove  删除文件名

  6,os.rename  修改文件名

# 其他方法:readale ,writable,seek
# f = open('文件操作1',encoding='utf-8')
# if f.writable():
#     content = f.read()
#     print(content)
# f.close()

# seek 调整光标到开始,seek(0)  调整光标到结尾seek(0,2) *****
# f = open('文件操作1',encoding='utf-8')
# f.seek(6) # 按照字节去移动光标
# content = f.read()
# print(content)
# f.close()

# f = open('文件操作1',mode='rb')
# print(f.read())
# f.seek(6) # 按照字节去移动光标
# content = f.read()
# print(content)
# f.close()

# tell 告知光标的位置  *****
# f = open('文件操作1',encoding='utf-8')
# f.seek(0,2) # 按照字节去移动光标
# print(f.tell())
# f.close()

# truncate 要在writable模式下进行截取。
# r+ a+ ..不能在w模式下使用,对原文件进行截取
# f = open('文件操作1',encoding='utf-8',mode='r+')
# print(f.truncate(6))
# f.close()

# 1,主动关闭文件句柄
# with open('文件操作2',encoding='utf-8') as f1:
#     print(f1.read())
# 2,开启多个文件句柄。
# with open('文件操作2',encoding='utf-8') as f1,\
#         open('文件操作3',encoding='utf-8',mode='w') as f2:
#     print(f1.read())
#     f2.write('666666')
View Code 其他方法代码

 

# 文件的改的操作

# 1,以读的模式打开原文件,产生一个文件句柄f1.
# 2,以写的模式创建一个新文件,产生一个文件句柄f2.
# 3,读取原文件内容,进行修改,并将修改后的写入新文件。
# 4,将原文件删除。
# 5,将新文件重命名成原文件。

#  low版
import os
with open('alex的深度剖析', encoding='utf-8') as f1,\
    open('alex的深度解析.bak',encoding='utf-8',mode='w') as f2:
    old_content = f1.read()
    new_content = old_content.replace('alex','SB')
    f2.write(new_content)
os.remove('alex的深度剖析')
os.rename('alex的深度解析.bak', 'alex的深度剖析')
#

import os
with open('alex的深度剖析', encoding='utf-8') as f1,\
    open('alex的深度解析.bak',encoding='utf-8',mode='w') as f2:
    for line in f1:
        new_line = line.replace('SB','alex')
        f2.write(new_line)
os.remove('alex的深度剖析')
os.rename('alex的深度解析.bak', 'alex的深度剖析')
文件的改的操作

 

posted @ 2018-08-13 19:17  温而新  阅读(257)  评论(0编辑  收藏  举报