open()在文件处理时是个不错的方法。现根据实例总结如下:
文件是一个文本或字符串给出的名称(和路径
如果该文件不在当前工作目录中)
被打开或文件的整数文件描述符为
包裹。 (如果给出了一个文件描述符,那么它将被关闭
返回的I / O对象是关闭的,除非closefd被设置为False。)
mode是一个可选字符串,指定文件的模式
被打开。它默认为'r',这意味着可以在文本中阅读
模式。其他常见的值是写'W'(截断文件如果
它已经存在),用于创建和写入新文件的'x'和
'a'用于追加(在某些Unix系统上,这意味着所有的写入
追加到文件的末尾,而不管当前的搜索位置)。
在文本模式下,如果未指定编码,则使用的编码是平台
从属:locale.getpreferredencoding(False)被调用来获取
当前的区域设置编码。 (用于读取和写入原始字节使用二进制
模式并保留未指定的编码。)可用的模式是:
========= ========================================= ======================
字符意义
--------- ----------------------------------------- ----------------------
'r'打开阅读(默认)
'w'开始写入,首先截断文件
'x'创建一个新的文件并打开它进行写入
'a'开放写入,追加到文件末尾(如果存在)
'b'二进制模式
't'文本模式(默认)
'+'打开磁盘文件进行更新(读写)
'U'通用换行符模式(已弃用)
========= ========================================= ======================
默认模式是“rt”(打开阅读文本)。二进制随机
访问时,模式'w + b'打开并截断文件到0字节,而
'r + b'打开文件而不截断。 'x'模式意味着'w'和
如果文件已经存在,则引发`FileExistsError`。
Python区分以二进制和文本模式打开的文件,
即使底层操作系统没有。打开文件
二进制模式(向模式参数附加“b”)返回内容为
字节对象没有任何解码。在文本模式(默认,或什么时候
't'被附加到模式参数),文件的内容是
作为字符串返回,字节先用a解码
平台相关的编码或者使用指定的编码(如果给定的话)
一.数据读取
1.读取文件数据
# 函数open() 关键字with 在不再需要访问文件后将其关闭。
with open('pi_digits.txt') as file_object:
# 有了表示pi_digits.txt的文件对象后, 我们使用方法read() (前述程序的第2行) 读取这个文件的全部内容, 并将其作为一个长长的字符串存储在变量contents
# 中
contents = file_object.read()
# 相比于原始文件, 该输出唯一不同的地方是末尾多了一个空行。 为何会多出这个空行呢? 因为read()
# 到达文件末尾时返回一个空字符串, 而将这个空字符串显示出来时就是一个空行。
# 要删除多出来的空行, 可在print语句中使用rstrip() :
print(contents.rstrip())
2.带有路径的文件读取
file_path = 'F:\pi_digitssssss.txt'
with open(file_path) as file_object:
contents = file_object.read()
print(contents.rstrip())
3.逐行数据的读取
filename = 'pi_digits.txt'
with open(filename) as file_object:
for line in file_object:
print(line.rstrip())
4.将文件信息存储在文件列表中进行读取
filename = 'pi_digits.txt'
with open(filename) as file_object:
# 方法readlines()从文件中读取每一行, 并将其存储在一个列表中; 接下来, 该列表被存储到变量lines中;
lines = file_object.readlines()
for line in lines:
print(line.rstrip())
5.将文件信息存储在文件列表中进行读取,进而使用其内容
# 2018-01-22 19:44
filename = 'pi_digits.txt'
with open(filename) as file_object:
lines = file_object.readlines()
#创建一个变量pi_string
pi_string = ''
for line in lines:
pi_string += line.rstrip()
print(pi_string)
print(len(pi_string))
二.数据写入
1.写入空文件
filename = 'programming.txt'
with open(filename,'w') as file_object:
file_object.write("I love programming.")
2.写入多行
filename = 'programming.txt'
with open(filename,'w') as file_object:
file_object.write("I love programming.\n")
file_object.write("I love creating new games.")
3.附加到文件
filename = 'programming.txt'
with open(filename,'a') as file_object:
file_object.write("I also love finding meaning in large database.\n")
file_object.write("I love creating apps that can run in a browser.\n")