在Python中可以使用open打开文本文件并创建文本对象实例,然后调用其read方法读取该文件内容。open()方法的参数可以直接是文件名(当文件位于与该Python代码相同的路径时),即open('filename.txt');或者使用绝对路径的方式,如open('D:pythonfilename.txt');。正常使用时,在操作完之后需要调用close方法将文件关闭,但是使用with结构时,则无需进行close操作。
1.1 使用with关键字+open的方式访问文件使用该方式访问文件时,在使用之后不需要执行close文件的操作,具体使用方法如下实例所示:
首先需要创建一个websites.txt文件,该文件中的内容如下:
https://www.baidu.com/ https://www.taobao.com/ https://www.jd.com/ https://www.csdn.net/
然后具体的Python代码如下:
# -- coding: utf-8 --
#第一行为编码声明,当Python代码中可以使用非ASCII字符,没有该声明在运行该代码时会报错
print("Test open() function")
#使用open方法创建一个文本对象实例
with open('websites.txt') as file:
#使用file.name可以获取该实例对应的文本文件名称
print("file name is " + str(file.name))
print("Test reading full file with file.read(void)")
with open('websites.txt') as file:
#使用file.read()且不传递参数时,默认会读取文本文件中的全部内容
text = file.read()
print(text)
print("Test reading file with file.read(size)")
with open('websites.txt') as file:
#使用file.read(size)传递参数时,size表示要读取的字符个数
text = file.read(10)
print(text)
print("Test reading file with file.readline()")
with open('websites.txt') as file:
#使用file.readline()方法可以读取file中的一行文件
text = file.readline()
print(text)
上述代码的运行结果如下所示:
Test open() function file name is websites.txt Test reading full file with file.read(void) https://www.baidu.com/ https://www.taobao.com/ https://www.jd.com/ https://www.csdn.net/ Test reading file with file.read(size) https://ww Test reading file with file.readline() https://www.baidu.com/1.2 使用open/close的方式访问文件
若不使用with+open结构,那在调用过open函数之后,在对该文本文件使用之后需要调用file.close()方法将该文件关闭,防止后续再对该文件执行其他操作时出现无法操作的现象。具体使用方法如下实例所示:
file = open('D:websites.txt')
text = file.read()
print(text)
file.close()
上述代码的运行结果如下所示:
https://www.baidu.com/ https://www.taobao.com/ https://www.jd.com/ https://www.csdn.net/2 写文本文件操作
要想对一个文件执行写操作,那么在使用open方法创建实例时,需要向该方法传递写入模式对应的参数,即使用方法open('filename', 'w')。另外open方法所支持的操作模式参数:
- ‘w’:写入模式
- ‘r’ :读取模式
- ‘a’:附加模式
- ‘’:即不传入该参数时,默认是使用只读模式打开文件
当向一个不存在的文件执行写入操作时,open()函数会自动创建一个文本文件,若该文件存在,则以写入模式打开此文件时,open()函数中会清空该文件中的内容。具体使用方法如下:
# -- coding: utf-8 --
with open('new_file.txt', 'w') as file:
file.write('I`m a Chinese,')
file.write('I love my motherland.')
上述代码的执行完之后,会创建一个new_file.txt文件,并且该文件中的内容如下:
I`m a Chinese,I love my motherland.
需要注意的是,write()函数并不会在写入的文本末尾添加换行符,因此在多次执行write操作时,每次写入的内容都会在同一行。若想要每次写入的内容都位于单独的一行,那么需要在写入内容的最后包含换行符,具体使用方法如下:
# -- coding: utf-8 --
with open('new_file.txt', 'w') as file:
file.write('I`m a Chinese,')
file.write('I love my motherland.')
上述代码的执行完之后,会创建一个new_file.txt文件,并且该文件中的内容如下:
I`m a Chinese, I love my motherland.2.2 将内容附加到已存在文件中
使用’a’模式打开文件时,在执行写操作时会将写入的文件添加的文件末尾
# -- coding: utf-8 --
with open('new_file.txt', 'a') as file:
file.write('Where are you from?')
上述代码的执行完之后,new_file.txt文件中的内容如下:
I`m a Chinese, I love my motherland. Where are you from?
补充:
各种文件操作函数的具体使用方法请查阅如下网址:
https://www.runoob.com/python/file-methods.html



