文件
相当于创建一个对象链接到本机上的某一个文件。即:在python里面创建一个对象引用到本机上的某一个文件。通过python对象进行一系列的操作,然后操作其实是作用于连接的那个文件上的。这个python对象的创建是通过内置函数open()。所以open()这个函数就可以链接到本机的某一个文件对它进行读写操作。
文件的基本语法
xxx=open(‘文件名’, mode)
要以任何方式使用文件——哪怕仅仅是打印文件中的内容,都得先打开文件,然后才能访问它。函数open()返回的是一个表示文件的对象。python将这个对象存储在xxx这个变量中。
mode具体有三个参数: ‘a’ ‘w’ ‘r’
xxx=open(‘文件名’,‘a’/‘w’/‘r’)
‘a’ ——打开一个文件用于追加信息,如果该文件已存在已有内容,则从结尾开始追加,如果文件不存在则新建文件
‘w’ ——打开一个文件只用于写入信息,如果该文件已存在已有信息则会覆盖掉原有的信息,如果文件不存在就创建出新文件
‘r’ ——以只读方式打开文件
xxx=open(‘文件名’,‘ab’/‘wb’/‘rb’)
在a/r/w后面加上b——b即binary二进制。表示操作的是二进制的文件
接下来用 xxx.方法 就可以进行一系列的操作了
文件的常见操作
#创建一个文件名为exercise.txt的文件。由于目前这个文件不存在,所以我们对这个文件的操作肯定是创建这个文件并且往里面写入内容,所以选择'w'。(注意:以写入模式'w'打开文件时,如果指定文件已经存在,python将在返回文件对象前清空该文件)
myfile=open('exercise.txt','w')
#上述这行代码就创建了一个文件的引用实例——myfile。open('exercise.txt','w')返回的是一个表示exercise.txt文件的对象。然后将这个对象存储在myfile这个变量中。
#接下来往这个新创建的空白文件里写入内容
myfile.write('python course\n')
14
#返回一个14表示我们写入了9个字符
myfile.write('hello world\n')
12
myfile.close()
#打开exercise.txt文件看看我们刚才写入的内容
python course
hello world
#write()不会在写入的文本末尾添加换行符,因此当写入多行时没有指定换行符,会发现多行内容挤在一行。因此要让每个字符串单独占一行,需要在末尾加换行符\n
#读取一个文件(后面的'r'可以不写,当省略模式实参时,python将以默认的只读模式打开文件)
f=open('exercise.txt','r')
#有了表示exercise.txt文件对象的变量f后,就可以使用read()方法读取这个文件的全部内容。
f.read()
'python course\nhello world\n'
#此时再read就什么信息都没有了
f.read()
''
#由于已经读完了所有的信息了,所以我们需要先再重新打开这个文件
f=open('exercise.txt')
#此时f就是文件操作的句柄
#使用.readline()逐行读取信息
f.readline()
'python course\n'
f.readline()
'hello world\n'
f.readline()
''
#一次性将里面的所有行读取到列表里面
l=open('exercise.txt').readlines()
#此时l并不是文件操作的句柄。而是.readlines()返回的结果类型。.readlines()返回的结果类型是列表
type(open('exercise.txt').readlines())
<class 'list'