码迷,mamicode.com
首页 > 其他好文 > 详细

文件读写

时间:2018-05-19 23:19:08      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:大文件读取   pre   内容   改变   基本   break   创建   一个   文件读写   

一、文件打开open

  文件打开针对当前的工作目录。

  可以使用os.chdir() 来改变工作目录

1.1 open的两种方式

  1.手动挡,需要手动关闭

f = open(1.py, r)
print(f.read())
f.close()

  2.自动挡,使用with管理上下文,自动关闭

with open(1.py, r) as f:
    print(f.read())

 

1.2 文件读写模式

# 基本三种模式
  r    以只读模式打开文件,并将文件指针指向文件头;如果文件不存在会报错
  w    以只写模式打开文件,并将文件指针指向文件头;如果文件存在则将其内容清空,如果文件不存在则创建
  a    以只追加可写模式打开文件,并将文件指针指向文件尾部;如果文件不存在则创建
# 扩展模式
  r+    在r的基础上增加了可写功能,文件指针指向开头
  w+    在w的基础上增加了可读功能, w+,跟w一样,增加了可读功能。
  a+    在a的基础上增加了可读功能,不管文件指针在哪,都移到末尾
在上面这几种模式中,都可以混搭一个b模式,以二进制的方式进行读写。
保证在扩平台或其他操作,读写正确。 在lunux下会忽略b,默认就是二进制读取

 

二、文件读操作

2.1  read()

  直接read(),获取全部,一次性存入内存中。返回一个字符串。 针对大文件出错

2.2 read(size)

  指定size读取,可以解决大文件读取出错。

while True:
    block = f.read(1024)
    if not block:
        break

 

2.3 readline()

  每次读取一行

while True:
    line = f.readline()
    if not line:
        break

 

2.4 readlines():

  读取全部的行,构成一个list,通过list来对文件进行处理,但是这种方式依然会造成MemoyError

for line in f.readlines():
    ....

 

2.5 使用文件描述符,可迭代对象

with open(filename, r) as flie:
    for line in file:
        ....

 

 

三、文件写操作

  写操作就比较的简单了,两种方法

3.1 write()

  参数为字符串

3.2 writeline()

  参数为一个序列,比如列表

 

四、文件定位

with open(2.py, w+, encoding=utf-8) as f:
    f.write(我是中国人)
    print(f.tell())     # 使用字节来计算,一个汉字3字节,输出15
    f.seek(0)
    print(f.read(3))    # 使用字符来计算,输出 ‘我是中‘,因为读的时候有空格或其他符号(1个字节会错乱)

 

文件读写

标签:大文件读取   pre   内容   改变   基本   break   创建   一个   文件读写   

原文地址:https://www.cnblogs.com/louhui/p/9061870.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!