Python——文件读取与写入
我们经常需要从文件中读取数据,因此学会文件的读取很重要,下面来介绍一下文件的读取工作:
poem.txt
Shall I compare thee to a summer's day?
我怎么能够把你来比作夏天
Thou art more lovely and more temperate。
你不独比它可爱也比它温婉
Rough windsdo shakethe darling buds of May,
狂风把五月宠爱的嫩蕊作践
And summer's lease hath all too short a date。
夏天出赁的期限又为免太短
1、读取文件
单纯的读取一个文件,我们首先要打开文件,然后读取里面的内容,使用read()方法,读取文件的全部内容,然后把读取出来的内容进行赋给一个变量;
- with方式打开文件:
open方法直接打开并读取文件,不使用with语句,此方法直接读取文件,但是要记得关闭文件,我们要知道,我们操作的是什么,目的是什么,如果我们只是单纯的读取文件的内容,而不去修改它,那么就单纯使用open()方法,不用第二参数即可。
-- coding: UTF-8 --
import sys
import json
reload(sys)
sys.setdefaultencoding(‘utf-8’)def file_Reader():
#with方式读取
with open('poem.txt') as file_object:
#读取整个文件
contents = file_object.read()
print(type(contents))
print(contents)
#
#逐行读取
# for line in file_object:
# print line
#读取文件内容到一个列表中
# lines = file_object.readlines()
# print lines
*
#直接open文件,记得close文件
# f = open('poem.txt')
# 读取整个文件
# contents = f.read()
# print(contents)
#组行读取
# for line in f:
# print line.strip()
# 读取文件内容到一个列表中
# lines = file_object.readlines()
# print lines
# f.close()
if name == “main“:
file_Reader()
二者异同点:
- 方法1,with 语句在不再需要访问文件后将其关闭。直接使用open()方法打开文件,但不需要自己调用close()关闭文件;
- 方法2,直接使用open()方法打开文件,要自己调用close()方法关闭文件。如果程序存在bug,导致close()语句未执行,文件将不会关闭。这看似微不足道,但未妥善地关闭文件可能会导致数据丢失或受损。如果在程序中过早地调用close(),我们会发现需要使用文件时它已关闭(无法访问),这会导致更多的错误。并非任何情况下都能轻松地确定关闭文件的恰当时机。
- 两种方法都可打开文件,方法1with打开的方式更安全一些,不需要我们去确定什么时候关闭文件。
- 两种方法在打开文件后,都可读取整个文件内容/逐行读取/把文件读取到一个列表中。
二、写入文件
保存数据的最简单的方式之一是将其写入到文件中。
读取和写入文件有两种方法,一种是with语句打开文件;另一种是open()和close()结合使用打开和读取文件。
# -*- coding: UTF-8 -*-
import sys
import json
reload(sys)
sys.setdefaultencoding('utf-8')
def file_Writer():
#with方式写入文件内容
# with open("testWriter.txt","w") as f:
# f.write("hello,world")
#
#open()和close()结合使用打开文件
f = open("testWriter.txt", "w")
f.write("hello,world666")
f.close()
if __name__ == "__main__":
# file_Reader()
file_Writer()
打开方式 | ||
“r” | 读取模式 | 默认的只读模式打开文件 |
“w” | 写入模式 | 写入模式要覆盖之前文件里面的内容 |
“a” | 附加模式 | |
“r+” | 可读取和写入文件的模式 |
打开文件时,可指定打开模式,如果我们要写入的文件不存在,函数open()将自动创建它。然而,以写入(‘w’)模式打开文件时千万要小心,因为如果指定的文件已经存在,Python将在返回文件对象前清空该文件。所以使用写入模式(‘w’)的时候一定要小心。
还没有评论,来说两句吧...