vscode 调试器和来自 cmd 的 运行 不一样吗?

vscode debugger and running from cmd is not the same?

我有这样的代码:

f = open('a.txt', 'a')
f.write('benis')
f.close()

f = open('a.txt', 'r')
print(f.read())
f.close()

当我通过调试器 运行 它时,我不断得到这个:

run1) benis
run2) benisbenis
...

一切正常吗?

但是 我在 a.txt 中有这个:“样本”

当我通过 cmd 运行 它时:

run1) samplebenis
run2) samplebenisbenis

但是,我还有更多!

如果我通过 cmd 运行 它会按预期工作。 Txt 每次都会更新。更新保存在里面。

如果我 运行 它通过调试器保存他自己的“a.txt”...但我不知道在哪里。 即使在 PC 重新启动后它仍然存在于内存中的某个地方。 Idk,这个目录下没有新文件,什么都没有

情况说明。现在,问题

如何才能正常调试? VScode 保留它的地方是“a.txt”?

(也许有人会在评论中说,我应该打开文件写入,然后关闭,然后打开读取,然后关闭,还是我可以只打开一次?)

运行 它在 Debugger 和 Command line 中是不一样的。这是因为您在调试器的 launch.json(和其他 json 文件)中指定了环境和其他变量。

因此,当您 运行 在调试模式下运行时,文件可能是在其他目录(很可能是用户目录)中创建的。

如果您想 运行 调试模式下的代码就像在命令行中 运行 一样,然后编辑 vscode 中的 launch.json 文件的调试器使用您想要的目录。

至于读写文件,除非你在读写之间做一些其他的任务,否则你可以重复使用同一个文件对象。但是你需要回到文件的开头。