python io开发,python写入文件 输出数据到文件内容的方法汇总
Python 广泛用于数据分析,带有一些内置函数可以将数据写入文件。可以打开一个文件并对其执行不同的操作,例如将新内容写入其中或修改文件以在文件末尾附加内容。
每当我们需要将文本写入文件时,我们都必须以相应的访问模式打开文件。我们基本上可以打开文件进行读取,写入或追加。要将内容写入文件,我们必须以写入模式打开文件。
访问模式 | 描述 |
w | 打开文件进行写入。文件句柄将放置在文件的开头。如果文件不存在,则会创建一个新文件。 |
w+ | 打开文件进行读取和写入。文件句柄将放置在文件的开头。如果文件不存在,则会创建一个新文件。 |
wb | 打开二进制文件进行写入。文件句柄将放置在文件的开头。如果文件不存在,则会创建一个新文件。 |
a | 打开文件进行写入。文件句柄将放置在文件的末尾。文件存在,新内容将添加到现有内容之后。否则将创建一个新文件。 |
a+ | 打开文件进行写入和读取。文件句柄放置在文件的末尾。文件存在,新内容将添加到现有内容之后。否则将创建一个新文件。 |
文件写入方法:
方法 | 描述 |
write() | 用于将字符串写入文件。只接受字符串作为参数。 |
writelines() | 用于将字符串列表写入文件。接受字符串和列表作为参数。 |
在 Python 中将文本数据写入文件
text="这是需要写入新内容!"
fp=open("abc.txt",'w')
fp.write(text)
fp.close()
#打开文件读取写入的内容
fp=open("abc.txt",'r')
print(fp.read())
fp.close()
在上面的示例中,如果abc.txt不存在,会使用该名称创建一个新文件并写入内容。如果abc.txt存在,原有内容被新内容覆盖。
在 Python 中将列表数据写入文件
text=['website\n', 'https://www.zbxx.net\n', 'wordpress']
fp=open("abc.txt","w")
fp.writelines(text)
fp.close()
fp=open("abc.txt","r")
print(fp.read())
fp.close()
在上面的示例中,我们将列表列表中的多个字符串写入文件。在字符串的尾部添加了“\n”,写入换行符。
在 Python 中使用with将数据写入文件
with 语句可以方便的进行异常处理。也确保了文件在写入完毕后自动关闭,释放与文件绑定的所有资源。
text=['website\n', 'https://www.zbxx.net\n', 'wordpress']
with open("abc.txt","w") as fp:
fp.writelines(text)
with open("abc.txt","r") as fp:
print(fp.read())
在 Python 中将新内容追加到现有文件
将访问模式设置为”a”后,我们可以在现有文件的末尾添加新文本。
text1=['website\n', 'https://www.zbxx.net\n', 'wordpress']
text2="Welcome\n"
with open("abc.txt","a") as fp:
fp.write(text2)
fp.writelines(text1)
with open("abc.txt","r") as fp:
print(fp.read())
在 Python 中同时对文件写入和读取
在上面的示例中,我们打开文件写入内容后,需要再次打开文件读取内容,一个文件打开两次。
现在我们尝试在不再次打开文件的情况下,同时对文件写入和读取。
text1=['website\n', 'https://www.zbxx.net\n', 'wordpress']
text2="Welcome\n"
with open("abc.txt","w+") as fp:
fp.write(text2)
fp.writelines(text1)
print(fp.read())
上面的示例中,我们只打开一次文件,进行写入读取。但是,程序并没有读取到数据。因为,文件写入后,文件句柄处于文件末尾,读取数据时从文件句柄开始,不会读取到内容。
我们可以使用seek()函数来解决这个问题,seek(0)可以将文件句柄移至文件开头。
text1=['website\n', 'https://www.zbxx.net\n', 'wordpress']
text2="Welcome\n"
with open("abc.txt","w+") as fp:
fp.write(text2)
fp.writelines(text1)
fp.seek(0)
print(fp.read())