数据读取与写入

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")


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值