Python 新增txt文件不覆盖写入
在Python编程中,经常会遇到需要新增一个txt文件并向其中写入内容的情况。但是有时候我们希望在已有的txt文件中继续添加内容,而不是覆盖掉原有的内容。本文将介绍如何使用Python来实现在txt文件末尾继续写入数据的功能。
使用open
函数以追加模式打开文件
在Python中,我们可以使用open
函数来打开一个文件,并指定文件打开的模式。如果我们想在已有的文件末尾继续写入数据,可以使用追加模式(a
)来打开文件。示例代码如下所示:
with open('geek-docs.txt', 'a') as file:
file.write('Hello, geek-docs.com\n')
以上代码将在当前目录下创建一个名为geek-docs.txt
的文件,并向其中写入Hello, geek-docs.com
。如果文件已经存在,那么这行文本将被追加到文件的末尾。
运行以上代码后,可以打开geek-docs.txt
文件查看写入的内容。可以看到,文件中已经包含了Hello, geek-docs.com
这行文本。
使用open
函数以读写模式打开文件
除了使用追加模式(a
)来打开文件外,我们还可以使用读写模式(r+
)来同时读取和写入文件。示例代码如下所示:
with open('geek-docs.txt', 'r+') as file:
content = file.read()
file.write('\nWelcome to geek-docs.com')
file.write('\nWebsite for geeks')
print(content)
以上代码首先使用read()
方法读取了geek-docs.txt
文件中的内容,并将其打印出来。然后向文件中写入了两行文本,并使用print
语句将之前读取的内容输出到控制台。
运行以上代码后,可以看到控制台打印出了geek-docs.txt
文件中的内容,并且在文件末尾成功写入了两行文本。
使用os.path
模块判断文件是否存在
在实际应用中,我们可能需要判断一个文件是否存在,从而决定是新增一个文件还是在已有文件中继续写入。为了实现这一功能,我们可以使用os.path
模块中的exists
方法来判断文件是否存在。示例代码如下所示:
import os
file_name = 'geek-docs.txt'
if os.path.exists(file_name):
mode = 'a' # 追加模式
else:
mode = 'w' # 写入模式
with open(file_name, mode) as file:
file.write('Python is amazing!')
以上代码首先定义了一个文件名geek-docs.txt
,然后使用os.path.exists
方法判断该文件是否存在。如果文件存在,则使用追加模式打开文件;如果文件不存在,则使用写入模式打开文件,并向其中写入Python is amazing!
这行文本。
总结
通过以上示例代码,我们学习了如何在Python中实现新增txt文件不覆盖写入的功能。首先我们使用open
函数以追加模式打开文件来实现继续写入数据的操作,然后我们介绍了读写模式的使用方式,最后我们使用os.path
模块判断文件是否存在来做出相应的操作。