我没有用过这个with语句,但对它的用途有些熟悉。使用以下代码,该#1块按预期工作,但是#2- 在这里纠正我,应该做与第一个相同的事情 - 引发以下异常FileExistsError: [Errno 17] File exists: 'mydir'。
import os
if not(os.path.exists('mydir')):
os.makedirs('mydir')
path = 'mydir'
filename = 'msg.txt'
filename2 = 'msg2.txt'
#1
with open(os.path.join(path, filename), 'w') as temp_file:
temp_file.write("hello")
#2
temp_file = open(os.path.join(path, filename2), 'w')
temp_file.write("hello again")
temp_file.close()
Run Code Online (Sandbox Code Playgroud)
第 1 部分:open和之间的区别with open
基本上,使用with只是确保您不会忘记close()文件,使其更安全/防止内存问题。
第 2 部分: FileExistsError
这是操作系统错误,因此可能是操作系统特定的。不过,假设您要覆盖(截断)前一个文件,您的语法是正确的。
这可能就是问题是特定于操作系统的,而大多数其他用户无法复制该问题的原因。
但是,如果它导致问题,您可以尝试使用w+模式,它可能会解决问题。
编辑:我刚刚注意到关于teams最初是路径的评论流。很高兴它得到了修复!
| 归档时间: |
|
| 查看次数: |
12780 次 |
| 最近记录: |