Python 文件操作

标准输入输出

sys.stdin.readline() 与 input()

import sys
a = sys.stdin.readline().strip('\n')

  值得注意的是,sys.stdin.readline()会把标准输入全部获取,包括末尾的换行符 '\n',我们需要用 strip('\n') 去掉换行符 '\n' 。

  当我们用内置函数 input() 时,事实上是先把提示信息输出,然后获取输入:

a = input('请输入:')

  与 sys.stdin.readline() 一样,input() 将所有输入作为字符串看待,返回字符串类型。

sys.stdout.write() 与 print()

import sys
sys.stdout.write('hello')

  注意:交互式模式下除了返回字符串,还会返回字符串长度。

  print() 将内容打印到控制台。

print('hello')

  举个栗子:输入两个数字,并计算他们之和的平方根。

>>> a = float(input('第一个数字:'))
>>> b = float(input('第二个数字:'))
>>> sum = (a + b) ** (1/2)
>>> print("{0},{1}之和的平方根:{2}".format(a, b, sum))

 

文件对象

  Python open() 方法用于打开一个文件,并返回文件对象,在对文件进行处理时都需要使用到这个函数。

  注意:调用 open() 方法产生文件对象后,一定要调用该对象的 close() 方法关闭文件。

  open() 函数常用形式是接收两个参数:文件名和模式。

open(file,mode='r')

常用的模式有:

'r':读

'w':写

'a':追加

'r+' :r+w(可读可写,文件若不存在就报错)

'w+' : w+r(可读可写,文件若不存在就创建)

'a+' :a+r(可追加可写,文件若不存在就创建)

对应的,如果是二进制文件,就都加一个b就好啦:

'rb' 'wb' 'ab' 'rb+' 'wb+' 'ab+'

文件对象的方法

f.read([size])        # 读取指定的字节数

f.readline()        # 读取整行,包括 '\n'

f.readlines()         # 读取所有行,并返回列表

f.write(str)       # 将字符串写入文件,返回写入的字符串长度

f.writelines(sequence)      # 向文件写入一个字符串列表

f.tell()      # 返回文件当前位置

f.seek(offset[,whence])  # 设置文件当前位置

f.close()     # 关闭文件对象

上下文管理器

  上下文管理器(context manager)用于规定某个对象的使用范围。一旦进入或者离开该使用范围,会有特殊操作被调用 (比如为对象分配或者释放内存)。它的语法形式是 with ... as ... 。可以在不需要文件的时候,自动关闭文件。

with open('new.txt', 'w') as f:
    f.write("Hello World!")

  上下文管理器有隶属于它的程序块,当程序块执行结束的时候,上下文管理器自动关闭了文件(可以通过 f.closed 来查询文件是否关闭)。

  上下文管理器基于对象的特殊方法。Python 在进入程序块之前调用对象的 __enter__() 方法,在结束程序块时调用 __exit__() 方法。在 __exit__() 方法中,有 self.close() 语句。任何定义了 __enter__() 和 __exit__() 方法的对象都可以用于上下文管理器。

posted @ 2019-05-05 18:03  PIPO2  阅读(412)  评论(0编辑  收藏  举报