Python学习笔记(九)——文件
Python的文件操作与C语言中的文件操作很多地方都极为相似,比如各个实参的定义。对于文件使用的步骤。在文件操作前应先打开文件,同时注意及时关闭文件。
一 从文件中读取数据
1.读取整个文件
创建一个txt文件1.txt
3.141592653589793238462643383279
- 1
下面的程序将打开并读取这个文件,将其显示在屏幕上;
with open('1.txt') as file_object:
contents = file_object.read()
print(contents)
- 1
- 2
- 3
我们利用了函数open()打开了该文件,因为在文件操作前,必须要先打开文件。
关键字with在不再需要访问文件时将其关闭。
打开文件后,我们也可以使用方法read()读取这个文件的全部内容。作为一个字符串存储在contents中
with open('1.txt') as file_object:
contents = file_object.read()
print(contents.rstrip())
- 1
- 2
- 3
如果需要删除多出来的空行,可以使用到rstrip()。
2.文件路径
当我们把简单文件名传递给函数open时,Python将在当前执行的文件所在的目录中查找。
当我们需要寻找其它文件夹的文件时,就可以使用到相对文件路径。它是相对于执行的Python程序的,在windows中通常这么表示:
with open('text_filesfilename.txt') as file_object:
- 1
我们还可以将文件在计算机中的准确位置告诉 Python ,这样就不用关心当前运行的程序存储在什么地方了。这称为 绝对文件路径
在wendows系统中,它们类似于这样:
file_path = 'C:Usersehmatthesother_files ext_filesfilename.txt'
with open(file_path) as file_object:
- 1
- 2
3.逐行读取
我们可以使用for循环进行逐行读取。方便查找特定的信息,或者以某种方式修改文件中的文本。
filename = '1.txt'
with open(filename) as file_object:
for line in file_object:
print(line)
- 1
- 2
- 3
- 4
- 5
此时我们发现输出的空白行更多了。因为print语句中加上了一个空白行。
4.创建一个包含文件各行内容的列表
filename = '1.txt'
with open(filename) as file_object:
lines = file_object.readlines()
for line in lines:
print(line)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
5.使用文件的内容
将文件读取到内存后,我们便可以使用任意方式使用这些数据了。可以使用前面的字符串,列表,循环等等操作去使用文件内容
二 写入文件
1.写入空文件
我们在使用open()需要再提供一个实参,以告诉Python我们接下来的操作。
filename = 'a.txt'
with open(filename,'w') as file_object:
file_object.write("Hello World")
- 1
- 2
- 3
- 4
第一个实参也是要打开的文件的名称;第二个实参( ‘w’ )告诉 Python ,我们要以 写入模式 打开这个文件。打开文件时,可指定 读取模式 ( ‘r’ )、 写入模式 ( ‘w’ )、 附加模式 ( ‘a’ )或让你能够读取和写入文件的模式( ‘r+’ )。如果你省略了模式实参, Python 将以默认的只读模式打开文件。
如果我们要写入的文件不存在,函数 open() 将自动创建它。然而,以写入( ‘w’ )模式打开文件时千万要小心,因为如果指定的文件已经存在, Python 将在返回文件对象前清空
该文件。
2.写入多行
函数write()不会在写入的文本末尾添加换行符。所以有时我们需要手动添加 。
3.附加到文件
我们指定了实参’a’将内容添加到末尾,而不是直接覆盖原来的内容。