Python之文件操作

打开文件   

open('路径’, '打开方式', '编码方式')

路径:可以用绝对路径,也可以用相对路径

打开方式:r(读)  w(写)   a(追加)  r+(可读可写)  w+(可写可读)  a+(可追加可读)   ..b(以byte类型打开,可接前面的6种方式)

编码方式:以什么编码方式保存的文件就要以什么编码方式打开进行操作,utf-8 gbk......

注意:虽然有r+ w+ ,但是打开文件直接写和  读完再写会导致光标不一致,会乱,不建议使用。

f = open('H:\网课资料\Python\标记1.txt', mode='r', encoding='utf-8'
f = open('log', mode='w', encoding='utf-8')    # 对于w,没有此文件就会新创建文件;有文件就先将源文件删除,然后再写入新文件

# 可以同时打开多个文件,并且不用再调用close()进行关闭
# with open('log', mode='r+', encoding='utf-8') as f:
# print(f.read())

# with open('log', mode='r+', encoding='utf-8') as f1, \
# open('test', mode='r+', encoding='utf-8') as f2:
# print(f1.read())
# print(f2.read())

 

操作文件:

读:read  一次性读

  readlines  一次性读,文件大的时候不好处理

  readline     一行一行读——不知道在哪结束,视频、图片 rb  bytes 按照字节读

  for 循环读    一行一行的读进来进行操作,最好的操作方式

with open('log', mode='r', encoding='utf-8') as f:
    for line in f:
        print(line)

 

写:write    可用 \n 进行 换行操作

光标:(文件指针)

  seek——指定光标移动到某个位置

  tell——获取光标当前位置

  truncate——截取文件

# ###########功能详解###########33
# f = open('log', mode='r+', encoding='utf-8')
# content = f.read(3) # 读出来的都是字符,英文汉字都是3个
# f.seek(3) # seek是按照字节定光标的位置,因为一个汉字要用3个字节,所以只有定义要3的倍数才能完整的读出后面的汉字
# print(f.tell()) # tell返回光标的位置
# count = f.tell()
# f.seek(count+9)
# content = f.read()
# content = f.readable() # 判断文件是否可读
# print(content)
# line = f.readline() # 一行一行的读
# line = f.readlines() # 一次性读出来,每一行当成列表中的一个元素,添加到一个列表中
# print(line)
# f.truncate(5) # 对源文件进行截取
# f.close()

修改文件

with open('test', encoding='utf-8') as f, open('test.bck', 'w', encoding='utf-8') as f1:
    for line in f:
        if 'cfq' in line:
            line = line.replace('cfq', 'CFQ')
        f1.write(line)

import os
os.remove('test')    # 删除文件
os.rename('test.bck', 'test')   # 重命名文件

 

posted @ 2018-12-06 15:25  阿梵杰  阅读(151)  评论(0)    收藏  举报