文章目录
1. 从文件中读取数据
读取文件的两种方式:
一次性读取文件的全部内容。
每次一行的方式逐步读取。
1.1 读取整个文件
- 想要读取文件,第一步是打开文件,才能访问它。
open() 接受一个参数:打开文件的名称with open('test1') as file_object: contents = file_object.read() print(contents)
python在当前执行的文件所在的目录中查找指定的文件。
函数open()返回一个表示文件的对象,python将该对象赋给file_object 供以后使用。
关键字with在不再需要访问文件后将其关闭。
为什么不调用close()。
- 如果程序存在BUG,导致方法close()未执行,文件将不会关闭。未妥善关闭文件可能导致数据丢失或受损。
- 如果在程序中过早的调用close(),会发现需要使用文件的时候它已关闭(无法访问),这会导致更多的错误。
所以并非在任何情况下都能轻松确定关闭文件的恰当时机,但是通过前面使用的结构就可以让python去确定:你只管打开文件,并在需要的时候使用它,python自会在合适的时候自动将其关闭。
有了表示test1 的文件对象后,使用方法read() 读取这个文件的全部内容,并将其作为一个长长的字符串赋值给变量contents。这样通过打印contents的值,就可以将这个文本文件的全部内容显示出来。
删除字符串末尾的空白:在函数调用print()中使用rstrip();
1.2 文件路径
file_path = 'D:/Desktop/test1.txt'
显示文件路径时,windows系统使用反斜杠(\),而不是斜杠(/),在代码中依然可以使用斜杠。
通过使用绝对路径,可读取系统中任何地方的文件,目前来说最简单的做法是:
- 将数据文件存储在程序文件的所在目录
- 存储在程序文件所在目录下的一个文件夹中。
如果在文件路径中直接使用反斜杠,将引发错误,因为反斜杠用于对字符串中的字符进行转义。
1.3 逐行读取
要以每次一行的方式检查文件,可对文件对象使用for循环。
file_path = 'D:/desktop/test1.txt'
with open(file_path