首先明确一点,现代计算机的操作系统都不允许程序直接操作磁盘的,所以读取文件和写入文件都是有操作系统提供的提供的接口完成的,每一种编程语言都会把操作系统提供的低级C接口封装起来方便使用,Python也不例外。python是怎么样读取文件的。

文件打开



f= open ('C:/Users/Administrator/Desktop/test.txt','r')



 

1、文件的读取

使用open语句进行文件的打开操作,括号里面指明文件的位置和阅读的模式,'r'只读,还是'w'写入.中间用逗号隔开,位置与模式分别使用引号。

文件打开成功,可以使用read()方法进行一次性全部读取到计算机内存中,并用一个字符串对象表示,



>>> f.read()
''



因为文件是空的,返回  ''

使用 read() 方法危险之处在于如果文件过大,计算机内存就会爆满,可以使用更加安全的方法。



read(size)表示每次最多读取size字节的内容



readline()表示每次读取一行的内容



list



 

2、文件的写入

首先打开文件,指定写入模式:



f= open ('C:/Users/Administrator/Desktop/test.txt','w')



写入内容:



f.write('hello,world')



这是文本已经写人文件。

 

3、关闭文件

打开的文件对象会占用系统的资源,所以要进行关闭操作,另外操作系统同一时间能打开的文件数量也是有限的,及时关闭文件是良好的代码书写习惯。



f.close()



至此一个文件的读取、写入、关闭完成。

注意的是使用IO读写很可靠会发生错误,这是文件依旧打开但是使用close()会失去调用,为了保证无论是否出错我们都能正确的关闭文件,使用python中的try finally来实现。



try:
    f = open('C:/Users/Administrator/Desktop/test.txt', 'r')
    print(f.read())
finally:
    if f: f.close()



使用with语句来自动帮我们调用close()方法:



C:/Users/Administrator/Desktop/test.txt



try ... finally是一样的,但是代码更佳简洁,并且不必调用f.close()方法。

 

4、其他文件读取:

读取二进制文件:例如视频、图片,用'rb'模式打开文件即可:



f = open('/Users/michael/test.jpg', 'rb')



读取非UTF-8编码的文本文件,需要给open()函数传入encoding参数:



f = open('/Users/michael/gbk.txt', 'r', encoding='gbk')



遇到有些编码不规范的文件,open()函数还接收一个errors参数,表示如果遇到编码错误后如何处理。最简单的方式是直接忽略:



f = open('/Users/michael/gbk.txt', 'r', encoding='gbk', errors='ignore')



 

常见的文件打开模式:



r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。

rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。

r+ 打开一个文件用于读写。文件指针将会放在文件的开头。

rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。

w 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

w+ 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。

ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。



 

 

最后注意:

 在Windows资源管理器中的文件地址位置使用的"\",但是在python中的读取时路径要使用"/"否则会出现错误。

苹果的python文件地址 苹果系统python读取文件_操作系统

根据廖老师的教程整理。