Python-将文本写入文件?

标签 python

我正在尝试学习 python 并想将一些文本写入文件。我遇到了两种文件对象。

fout=open("abc.txt",a)

以 open("abc.txt",a) 作为 fout:

以下代码:

f= open("abc.txt", 'a')
f.write("Step 1\n")
print "Step 1"
with open("abc.txt", 'a') as fout:
   fout.write("Step 2\n")

给出输出:

Step 2
Step 1

以及以下代码:

f= open("abc1.txt", 'a')
f.write("Step 1\n")
f= open("abc1.txt", 'a')
f.write("Step 2\n")

给出输出:

Step 1
Step 2

为什么输出有差异?

最佳答案

只有一种类型的文件对象,只是两种不同的创建方式。主要区别在于 with open("abc.txt",a) as fout: 行会为您关闭文件,因此不易出错。

发生的事情是您使用 fout=open("abc.txt",a) 语句创建的文件会在程序结束时自动关闭,因此附加操作只会在那时发生。

如果您运行以下代码,您将看到它以正确的顺序生成输出:

f = open("abc.txt", 'a')
f.write("Step 1\n")
f.close()
with open("abc.txt", 'a') as fout:
   fout.write("Step 2\n")

行反转的原因是文件关闭的顺序。您的第一个示例中的代码与此类似:

f1 = open("abc.txt", 'a')
f1.write("Step 1\n")

# these three lines are roughly equivalent to the with statement (providing no errors happen)
f2 = open("abc.txt", 'a')
f2.write("Step 2\n")
f2.close() # "Step 2" is appended to the file here

# This happens automatically when your program exits if you don't do it yourself.
f1.close() # "Step 1" is appended to the file here

关于Python-将文本写入文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35120899/

相关文章:

python - 在 OSX Lion 上强加链接到特定的 python 库

python - 如何在Python代码中引用反斜杠(四\引用一)?

python - Python-打印时呈现unicode代码

python - 检查 python 线程是否抛出异常

python - 在哪里可以下载适用于 Windows 的 Python 2.7.3 的开发头文件?

python - 如何在Python 3中显示单词中的前3个字母,但用 "-"破折号替换单词的其余部分

python - 获取网格中可见体素的列表

python - 如何在pygame的屏幕标题上添加非英文字符?

python - 使用 Python API 创建 GCE 实例

python - 使用 .sort() 对列表中的数据进行排序