From 6747df4d6519b5a612c6ab6b2d8a29a501e9c76c Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 5 Aug 2021 09:48:27 +0800 Subject: [PATCH] PUB @MjSeven @turbokernel https://linux.cn/article-13649-1.html --- ...2 Reading and writing files with Python.md | 47 +++++++++---------- 1 file changed, 22 insertions(+), 25 deletions(-) rename {translated/tech => published}/20210712 Reading and writing files with Python.md (85%) diff --git a/translated/tech/20210712 Reading and writing files with Python.md b/published/20210712 Reading and writing files with Python.md similarity index 85% rename from translated/tech/20210712 Reading and writing files with Python.md rename to published/20210712 Reading and writing files with Python.md index 948e8f6d73..e399f2d528 100644 --- a/translated/tech/20210712 Reading and writing files with Python.md +++ b/published/20210712 Reading and writing files with Python.md @@ -4,22 +4,23 @@ [#]: collector: "lujun9972" [#]: translator: "MjSeven" [#]: reviewer: "turbokernel" -[#]: publisher: " " -[#]: url: " " +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-13649-1.html" 使用 Python 读写文件 ====== -每种编程语言处理文件数据的方式不尽相同,Python 是这么干的。 -![Hands on a keyboard with a Python book ][1] + +> 每种编程语言处理文件数据的方式不尽相同,Python 是这么干的。 + +![](https://img.linux.net.cn/data/attachment/album/202108/05/094700u9kj42rn4jh5h4hr.jpg) 有些数据是临时的,它们在应用程序运行时存储在内存中,然后丢弃。但是有些数据是持久的。它们存储在硬盘驱动器上供以后使用,而且它们通常是用户最关心的东西。对于程序员来说,编写代码读写文件是很常见的,但每种语言处理该任务的方式都不同。本文演示了如何使用 Python 处理文件数据。 -### 安装Python +### 安装 Python 在 Linux 上,你可能已经安装了 Python。如果没有,你可以通过发行版软件仓库安装它。例如,在 CentOS 或 RHEL 上: - -```bash +``` $ sudo dnf install python3 ``` @@ -39,8 +40,7 @@ $ sudo dnf install python3 在 Python 中,过程是这样的: - -```python +``` f = open('example.txt', 'w') f.write('hello world') f.close() @@ -50,20 +50,19 @@ f.close() 在打开文件时,有不同的模式: - * **w** 代表写入 - * **r+** 代表可读可写 - * **a** 表示追加 + * `w` 代表写入 + * `r+` 代表可读可写 + * `a` 表示追加 第二行表示向文件中写入数据,本例写入的是纯文本,但你可以写入任意类型的数据。 最后一行关闭了文件。 -### 使用 'with' 语法写入数据 +#### 使用 `with` 语法写入数据 -对于快速的文件交互,常用有一种简短的方法可以写入数据。它不会使文件保持打开状态,所以你不必记得调用 **close()** 函数。相反,它使用 **with** 语法: +对于快速的文件交互,常用有一种简短的方法可以写入数据。它不会使文件保持打开状态,所以你不必记得调用 `close()` 函数。相反,它使用 `with` 语法: - -```python +``` with open('example.txt', 'a') as f:     f.write('hello open source') ``` @@ -76,12 +75,11 @@ with open('example.txt', 'a') as f: 2. 读取 3. 关闭 -同样的,这个逻辑反映了你一开始使用计算机就已知的内容。阅读文档,你可以打开、阅读,然后关闭。在计算机术语中,”打开“文件意味着将其加载到内存中。 +同样的,这个逻辑反映了你一开始使用计算机就已知的内容。阅读文档,你可以打开、阅读,然后关闭。在计算机术语中,“打开”文件意味着将其加载到内存中。 实际上,一个文本文件内容肯定不止一行。例如,你需要读取一个配置文件、游戏存档或乐队下一首歌曲的歌词,正如你打开一本实体书时,你不可能立刻读完整本书,代码也只能解析已经加载到内存中的文件。因此,你可能需要遍历文件的内容。 - -```python +``` f = open('example.tmp', 'r') for line in f: @@ -90,16 +88,15 @@ for line in f: f.close() ``` -示例的第一行指明使用 **读** 模式打开一个文件,然后文件交由变量 `f` 表示,但就像你写数据一样,变量名是任意的。`f` 并没有什么特殊的,它只是单词 "file" 的最简表示,所以 Python 程序员会经常使用它。 +示例的第一行指明使用 **读** 模式打开一个文件,然后文件交由变量 `f` 表示,但就像你写数据一样,变量名是任意的。`f` 并没有什么特殊的,它只是单词 “file” 的最简表示,所以 Python 程序员会经常使用它。 在第二行,我们使用了 `line`,另一个任意变量名,用来表示 `f` 的每一行。这告诉 Python 逐行迭代文件的内容,并将每一行的内容打印到输出中(在本例中为终端或 [IDLE][5])。 -### 使用 'with' 语法读取数据 +#### 使用 `with` 语法读取数据 -就像写入一样,使用 `with` 语法是一种更简短的方法读取数据。即不需要调用 **close()** 方法,方便地快速交互。 +就像写入一样,使用 `with` 语法是一种更简短的方法读取数据。即不需要调用 `close()` 方法,方便地快速交互。 - -```python +``` with open('example.txt', 'r') as f:     for line in f:         print(line) @@ -107,7 +104,7 @@ with open('example.txt', 'r') as f: ### 文件和 Python -使用 Python 有很多方法向文件写入数据,包括用 [JSON、YAML、TOML][6] 等不同的格式写入。还有一个非常好的内置方法用于创建和维护 [SQLite][7] 数据库,以及许多库来处理不同的文件格式,包括[图像][8]、音频和视频等。 +使用 Python 有很多方法向文件写入数据,包括用 [JSON、YAML、TOML][6] 等不同的格式写入。还有一个非常好的内置方法用于创建和维护 [SQLite][7] 数据库,以及许多库来处理不同的文件格式,包括 [图像][8]、音频和视频等。 --------------------------------------------------------------------------------