Merge pull request #22761 from turbokernel/20210712-Reading-and-writing-files-with-Python.md

Reviewed 20210712 reading and writing files with python.md
This commit is contained in:
Xingyu.Wang 2021-08-03 13:06:35 +08:00 committed by GitHub
commit ee6fa82faf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -3,20 +3,20 @@
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
[#]: collector: "lujun9972"
[#]: translator: "MjSeven"
[#]: reviewer: " "
[#]: reviewer: "turbokernel"
[#]: publisher: " "
[#]: url: " "
Python 读写文件
使用 Python 读写文件
======
每种编程语言处理数据文件的方式不同Python 是这么干的。
每种编程语言处理文件数据的方式不尽相Python 是这么干的。
![Hands on a keyboard with a Python book ][1]
有些数据是临时的,它们在应用程序运行时存储在 RAM 中,然后丢弃。但是有些数据是持久的。它们存储在硬盘驱动器上供以后使用,而且它们通常是用户最关心的东西。对于程序员来说,编写代码读写文件是很常见的,但每种语言处理这个任务的方式都有些不同。本文演示了如何使用 Python 处理数据文件
有些数据是临时的,它们在应用程序运行时存储在内存中,然后丢弃。但是有些数据是持久的。它们存储在硬盘驱动器上供以后使用,而且它们通常是用户最关心的东西。对于程序员来说,编写代码读写文件是很常见的,但每种语言处理该任务的方式都不同。本文演示了如何使用 Python 处理文件数据。
### 安装Python
在 Linux 上,你可能已经安装了 Python。如果没有你可以发行版软件仓库安装它。例如,在 CentOS 或 RHEL 上:
在 Linux 上,你可能已经安装了 Python。如果没有你可以通过发行版软件仓库安装它。例如,在 CentOS 或 RHEL 上:
```bash
@ -31,11 +31,11 @@ $ sudo dnf install python3
如果你需要向一个文件中写入数据,记住有三个步骤:
1. Open
2. Write
3. Close
1. 打开
2. 写入
3. 关闭
这与你在计算机上写代码、编辑照片或执行其他操作时使用的步骤完全相同。首先,打开要编辑的文档,然后进行编辑,最后关闭文档。
这与你在计算机上码、编辑照片或执行其他操作时使用的步骤完全相同。首先,打开要编辑的文档,然后进行编辑,最后关闭文档。
在 Python 中,过程是这样的:
@ -46,7 +46,7 @@ f.write('hello world')
f.close()
```
这个例子中,第一行以**写**模式打开了一个文件,然后用变量 `f` 表示,我使用了 `f` 是因为它在 Python 代码中很常见,其他任意有效变量名也能正常工作。
这个例子中,第一行以**写**模式打开了一个文件,然后用变量 `f` 表示,我使用了 `f` 是因为它在 Python 代码中很常见,使用其他任意有效变量名也能正常工作。
在打开文件时,有不同的模式:
@ -60,7 +60,7 @@ f.close()
### 使用 'with' 语法写入数据
有一种简短的方法可以写入数据,对于快速的文件交互很有用。它不会使文件保持打开状态,所以你不必记得调用 **close()** 函数。相反,它使用 **with** 语法:
对于快速的文件交互,常用有一种简短的方法可以写入数据。它不会使文件保持打开状态,所以你不必记得调用 **close()** 函数。相反,它使用 **with** 语法:
```python
@ -72,13 +72,13 @@ with open('example.txt', 'a') as f:
如果你或你的用户需要通过应用程序需要向文件中写入一些数据,然后你需要使用它们,那么你就需要读取文件了。与写入类似,逻辑一样:
1. Open
2. Read
3. Close
1. 打开
2. 读取
3. 关闭
同样的,这个逻辑反映了你一开始使用计算机就已的内容。阅读文档,你可以打开、阅读,然后关闭。在计算机术语中,”打开“文件意味着将其加载到内存中。
同样的,这个逻辑反映了你一开始使用计算机就已知的内容。阅读文档,你可以打开、阅读,然后关闭。在计算机术语中,”打开“文件意味着将其加载到内存中。
实际上,一个文本文件内容肯定不止一行。例如,你需要读取一个配置文件、游戏保存的数据或乐队下一首歌曲的歌词,正如你打开一本实体书时,你不可能立刻读完整本书,代码也只能解析已经加载到内存中的文件。因此,你可能需要遍历文件的内容。
实际上,一个文本文件内容肯定不止一行。例如,你需要读取一个配置文件、游戏存档或乐队下一首歌曲的歌词,正如你打开一本实体书时,你不可能立刻读完整本书,代码也只能解析已经加载到内存中的文件。因此,你可能需要遍历文件的内容。
```python
@ -90,7 +90,7 @@ for line in f:
f.close()
```
示例的第一行表示使用 **读** 模式打开一个文件,然后文件交由变量 `f` 表示,但就像你写数据一样,变量名是任意的。`f` 并没有什么特殊的,它只是单词 "file" 的最简表示,所以 Python 程序员会经常使用它。
示例的第一行指明使用 **读** 模式打开一个文件,然后文件交由变量 `f` 表示,但就像你写数据一样,变量名是任意的。`f` 并没有什么特殊的,它只是单词 "file" 的最简表示,所以 Python 程序员会经常使用它。
在第二行,我们使用了 `line`,另一个任意变量名,用来表示 `f` 的每一行。这告诉 Python 逐行迭代文件的内容,并将每一行的内容打印到输出中(在本例中为终端或 [IDLE][5])。
@ -116,7 +116,7 @@ via: https://opensource.com/article/21/7/read-write-files-python
作者:[Seth Kenlon][a]
选题:[lujun9972][b]
译者:[MjSeven](https://github.com/MjSeven)
校对:[校对者ID](https://github.com/校对者ID)
校对:[turbokernel](https://github.com/turbokernel)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
@ -129,4 +129,4 @@ via: https://opensource.com/article/21/7/read-write-files-python
[5]: https://opensource.com/article/17/10/python-101#idle
[6]: https://opensource.com/article/21/6/parse-configuration-files-python
[7]: https://opensource.com/article/21/2/sqlite3-cheat-sheet
[8]: https://opensource.com/article/19/3/python-image-manipulation-tools
[8]: https://opensource.com/article/19/3/python-image-manipulation-tools