文件操作

一、文件操作常用的基本知识点

1、文件路径

1)、绝对路径:例如-"C:/Users/Administrator/Desktop/python/1.txt"

2)、相对路径:同一个文件夹下的文件就是相对路径

2、编码方式:GBK、UTF-8

3、打开方式

  只读、只写、追加读写

  基本模式语法:

#path:文件路径,mode:文件打开模式,encoding:编码方式,f:文件句柄
f = open(path, mode, encoding)

3.1、读:

        只读: r rb

            read  read(n)  readline()  readlines()  for循环

    rb一般用在非文字类型的文件:图片,视频
      文件的下载和上传的功能用b模式

        读写(先读,后写) r+ r+b

            一定要注意顺序,先读后写

  读的五种模式:

  1)、f.read() 全部读取出来

f = open('d:/test.txt',mode='r',encoding='utf-8')
content = f.read()
f.close()   #关闭文件句柄

  2)、f.readline() 按行读取文件(一次只能读取一行)

f = open('log', 'r', encoding='utf-8')
line = f.readline()
print(line)
line1 = f.readline()
print(line1)
f.close()

  3)、f.readlines() 读取每一行内容作为一个元素存入列表中

f = open('log',encoding='utf-8')    #不写,默认为r读模式
lines = f.readlines()
f.close()

  4)、循环读取,每次内存中只能读取一行(推荐方式)

f = open('log', encoding='utf-8')
for i in f:
    print(i)
f.close()

3.2、写:

        只写w wb

               # w 如果没有文件,则创建文件写内容,

               #   如果有文件则将原文件内容全部删除,在写.

        写读 w+

# w 如果文件不存在,会创建新文件在写入,如果文件存在则会将原文件内容进行覆盖
f = open('log','w',encoding='utf-8')
f.write('This is a write method.')
f.close()

 

#wb的写入方式
f = open('log','wb')
f.write('hello'.encode('utf-8'))
f.close()

 

3.3、追加:

        只追加 a ab

        追加可读 a+ a+b

#追加 a ab
f = open('log','a',encoding='utf-8')
f.write('wusir紧跟其后')
f.close()

 

# r+     r+b
f = open('log','r+',encoding='utf-8')
f.read()
f.write('ABCDEF')
f.close()

 

#w+  w+b
f = open('log','w+',encoding='utf-8')
f.write('this is a test.')
f.seek(0)  #移动光标位置
print(f.read())
f.close()

 

#a+
f = open('log','a+',encoding='utf-8')
f.write('aaaa')
f.tell()    #获取光标位置
f.seek(6)   #按照字节调整
f.close()

3.4、常用方法:

        read readable readline readlines for循环

        seek tell write writeable

 3.5、修改文件内容的五个步骤

import os
#1、创建一个新文件
#2、读取原文件
with open('log',encoding='utf-8') as f1,\
    open('log.bak','w',encoding='utf-8') as f2:
#3、将原文件的内容通过你想要的方式进行更改,并写入新文件件
    old_content = f1.read()
    new_content = old_content.replace('hello','test')
    f2.write(new_content)
#4、将原文件删除
os.remove('log')
#5、将新文件重命名原文件名
os.rename('log.bak','log')

 

posted @ 2018-01-30 19:41  lioushell  阅读(133)  评论(0编辑  收藏  举报