
Python 提供了创建、读取和写入文件的内置函数。因此,导入一个外部库来写文件是没有必要的。要 在 Python 中打开一个文件,使用**open()**方法。
在这个例子中,我们将看到如何在 Python 中写一个文件。 在Python中可以 处理两种类型的文件 ,标准的文本文件和二进制文件(用二进制语言、0和1编写)。
- 文本文件。 在这种类型的文件中,每一行文本都以特殊字符EOL (End of Line)结束,在Python中默认为换行字符 ('\n')。
- 二进制文件。 在这种类型的文件中,没有行的终止符,数据在转换为机器可理解的二进制语言后被存储。
Python写到文件
要在Python 中写到一个文件,使用**file.write()**函数。file.write()是一个内置的Python函数,如果指定的文件不存在,它将创建一个文件,并将提供的内容写入文件内。
创建一个新的文件
要在Python中创建一个新的 文件,使用**open()**方法,带以下参数之一。
例如,"x" -创建- 将创建一个文件,如果文件存在则返回一个错误。
"a" -Append- 如果指定的文件不存在,将创建一个文件。
"w" -写- 如果指定的文件不存在,将创建一个文件。
请看下面的代码。
# app.py
f = open("sample.txt", "x")
在上面的代码中,我们正在创建一个参数为**"x "** 的文件,这意味着如果该文件已经存在,它将返回一个错误。它将创建一个新的空文件。
我们声明了一个变量f来打开名为sample.txt的文件。 open()函数需要两个参数:我们要打开的文件和代表我们要对该文件进行的各种权限或操作的字符串。
这里我们在参数中使用了 "x "字母,表示创建文件,如果它存在,则返回FileExistsError。[Errno 17] File exists: 'sample.txt",你重新运行上述代码,它将给出 FileExistsError。
# app.py
f = open("sample.txt", "w")
在上面的代码中,我们传递了**"w",** 这意味着如果文件不存在,它将创建一个文件,如果文件不存在,它也不会给出任何错误。
在Python中写到一个已有的文件
要在Python中写到一个已有的文件,必须在open()函数中加入参数。
"a" - Append- 它将追加到文件的末尾。
"w" - 写- 它将覆盖任何现有的内容。
请看下面的代码。
# app.py
f = open("sample.txt", "a")
f.write("Disney plus is launched in 3 countries")
f.close()
如果你运行上述代码,它将在已经存在的sample. txt文件中写入 "Disney plus在3个国家推出"。
注意,我们打开了一个文件,写了一个文件,然后用close()函数关闭了一个文件。
让我们使用for循环来写进文件。
# app.py
f = open("sample.txt", "a")
for i in range(11):
f.write("This is line %d\r\n" % (i+1))
f.close()
我们已经创建了一个sample.txt文件,而且已经有了一行文本。
我们现在再追加11行,让我们看看输出结果。
# sample.txt
Disney plus is launched in 3 countriesThis is line 1
This is line 2
This is line 3
This is line 4
This is line 5
This is line 6
This is line 7
This is line 8
This is line 9
This is line 10
This is line 11
我们有for循环,在11个数字的范围内运行。 使用Python,写一个函数,把数据输入到文件中。
我们想在文件中迭代的输出是 "这是行号",我们用写函数声明,然后用百分比d(显示整数)。
所以基本上,我们输入我们要写的行号,一个回车,和一个新行字符。
如何在Python中关闭一个文件
要在Python中关闭一个文件,使用file.close() 方法。file.close()函数所做的是完全关闭文件,终止使用中的资源,把它们释放出来让系统部署到其他地方。
重要的是要理解,当你使用 ***f.close()***方法时,任何进一步尝试使用该文件对象的行为都会失败。这是因为 f.close()函数将关闭存储的文件sample.txt的实例。
f.close()
file**close()**函数关闭了一个文件并释放了该文件所获得的内存空间。
当一个文件不再需要或者要以不同的文件模式打开时,它就会被使用。
如何在Python中向文件追加数据
要在Python中向一个文件追加数据,使用**open()函数并传递"a+"**作为第二个参数。你也可以将新的文本追加到现有的文件中。
f = open("sample.txt", "a+")
请看下面的代码。
# app.py
f = open("sample.txt", "a+")
for i in range(11):
f.write("This is line %d\r\n" % (i+1))
f.close()
代码中的加号表示,如果新文件不存在,它将创建新文件。但在我们的例子中,我们已经有了这个文件,所以我们不需要创建一个新文件。
Python文件 writelines()
writelines()是一个内置的Python函数,它将字符串序列写到文件中。序列可以是任何产生字符串的可迭代对象,通常是字符串的列表。没有返回值。相反,writeelines()方法将列表中的元素写到文件中。
这些文本将根据文件模式和流的位置插入。
- **"a":**文本将被插入到当前文件流的位置,默认为文件的末端。
- **"w":**在文本插入到当前文件流的位置之前,文件将被清空,默认为0。
语法
file.writelines(list)
列表参数是将被插入的文本或字节对象。
例子
请看下面的代码。
# app.py
f = open("data.txt", "a")
f.writelines(["\nSee you soon!", "\nPeek-a-boo."])
f.close()
输出
See you soon!
Over and out.
如何在 Python 中读一个文件
要在Python中读取一个文件,使用内置的open() 函数。open() 函数返回文件对象,该对象有一个 read() 方法用于读取文件的内容。
f = open("filename", "r")
请看下面的代码。
# app.py
f = open("data.txt", "r")
print(f.read())
输出
➜ pyt python3 app.py
See you soon!
Over and out.
➜ pyt
Python 文件的 read() 方法默认返回整个文本,但你可以指定要返回多少个字符。
Python 中的文件模式
| 模式 | 描述 |
|---|---|
| 'r' | 这是默认模式。它打开文件进行读取。 |
| 'w' | 此模式打开文件用于写入。 |
| 如果文件不存在,它创建一个新文件。 | |
| 如果文件存在,它截断文件。 | |
| 'x' | 创建一个新的文件。如果文件已经存在,则操作失败。 |
| 'a' | 以追加模式打开文件。 |
| 如果文件不存在,则创建一个新文件。 | |
| 't' | 这是默认模式。它以文本模式打开。 |
| 'b' | 这以二进制模式打开。 |
| '+' | 这将打开一个文件进行读写(更新)。 |
摘要
- Python 允许你读、写和删除文件。
- 你可以使用函数open("filename", "w+")来创建文件。这个 "+"告诉Python解释器有读和写的权限,以打开该文件。
- 你可以使用 open("Filename", "a") 命令将数据追加到一个现有的文件中。
- 你可以使用 read() 函数来读取一个文件的全部内容。
- 你可以使用readlines()函数逐一读取文件的内容。