一、使用open打开文件后一定要记得调用文件对象的close()方法。比如可以用try/finally语句来确保最后能关闭文件。
二、需要导入import os
三、下面是逐行读取文件内容的三种方法:
1、第一种方法:
[python] view plain copy
f = open("foo.txt") # 返回一个文件对象 line = f.readline() # 调用文件的 readline()方法 while line: print line, # 后面跟 ‘,‘ 将忽略换行符 #print(line, end = ‘‘) # 在 Python 3 中使用 line = f.readline() f.close()
2、第二种方法:
与第3种方法对比, 并非一次性将全部的文件内容载入到内存里,而是在迭代的时候,循环到哪一行才将哪一行读入内存。这里涉及到一个新的概念-迭代器。
第二种方法是文本文件读取的最佳选择,它简单,且对任意大小的文件都有效,因为他不会一次性把整个文件都载入到内存里,相反第三种方法存在内存压力过大的问题。
for line in open("foo.txt"): print line,
3、第三种方法:
通过readlines方法,会首先一次性把文件载入到行字符串列表中,然后再对这个字符串列表进行迭代;
f = open("c:\\1.txt","r") lines = f.readlines() #读取全部内容 ,并以列表方式返回 for line in lines print line
四、一次性读取整个文件内容:
file_object = open(‘thefile.txt‘) try: all_the_text = file_object.read() finally: file_object.close()
五、区别对待读取文本 和 二进制:
1、如果是读取文本
读文本文件 input = open(‘data‘, ‘r‘) #第二个参数默认为r input = open(‘data‘)
2、如果是读取二进制
input = open(‘data‘, ‘rb‘)
读固定字节
chunk = input.read(100)
———————
python3 open txt的UnicodeDecodeError: 'gbk' codec问题解决方案
原文地址:https://www.cnblogs.com/xinxihua/p/12609020.html
时间: 2024-10-11 10:50:26