WHCSRL 技术网

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’将内容添加到末尾,而不是直接覆盖原来的内容。

推荐阅读