读写文件(python)

写文件

f = open("information.csv","w",encoding='UTF-8')

(1)readline函数 读取文件 节省内存,不需要一次性把文件内容放入内存中但是速度相对较慢

#-*- coding: UTF-8 -*-  
f = open("information.csv","r",encoding='UTF-8')     # 返回一个文件对象   
line = f.readline()             # 调用文件的 readline()方法 ,已经读取f中的一行  
while line:   
    #循环开始的时候从第二行开始
    print(line, end = '')       # 在 Python 3中使用 
    line = f.readline() 
f.close()

(2)一次读取多行数据(读取速度快,占用内存大)

#-*- coding: UTF-8 -*-  
f = open("information.csv","r",encoding='UTF-8')
while 1: 
    lines = f.readlines(10000) 
    if not lines: 
        break
    for line in lines: 
        print(line) 
f.close()

(3)使用fileinput模块读

import fileinput 
for line in fileinput.input("information.csv","r",encoding='UTF-8'): 
    print(line)

(4)

with open("information.csv", 'r') as f: 
#如果是路径/会被转义,加 r,如r'/path/to/file'
    print(f.read())

(5)
python文件对象提供了三个“读”方法: read()、readline() 和 readlines()。

每种方法可以接受一个变量以限制每次读取的数据量。这三种方法是把每行末尾的’\n’也读进来了,它并不会默认的把’\n’去掉,需要我们手动去掉。

  • read() 每次读取整个文件,它通常用于将文件内容放到一个字符串变量中。如果文件大于可用内存,为了保险起见,可以反复调用read(size)方法,每次最多读取size个字节的内容。

  • readlines() 一次读取整个文件,象 .read() 一样。.readlines() 自动将文件内容分析成一个行的列表,该列表可以由 Python 的 for … in … 结构进行处理。

  • readline() 每次只读取一行,通常比readlines() 慢得多。仅当没有足够内存可以一次读取整个文件时,才应该使用 readline()。

test1.txt

1
22
333
4444
55555

(1)readlines()读取多行,并放在列表里面

with open('test1.txt', 'r') as f1:
    list1 = f1.readlines()
print(list1)
#输出['1\n', '22\n', '333\n', '4444\n', '55555']

(2)read()

with open('test1.txt', 'r') as f1:
    list1 = f1.read()
print(list1)
#输出
1
22
333
4444
55555

(3)readline()读取一行

with open('test1.txt', 'r') as f1:
    list1 = f1.readline()
print(list1)
#输出
1

由于文件读写时都有可能产生IOError,一旦出错,后面的f.close()就不会调用。所以,为了保证无论是否出错都能正确地关闭文件,我们可以使用try … finally来实现:

try:
    f = open('test1.txt', 'r')
    print(f.read())
finally:
    if f:
        f.close()
posted @ 2020-07-19 23:40  yunduoyun  阅读(136)  评论(0编辑  收藏  举报