Python 3.x vscode调试器和从cmd运行的调试器不一样吗?

Python 3.x vscode调试器和从cmd运行的调试器不一样吗?,python-3.x,cmd,python-import,vscode-debugger,Python 3.x,Cmd,Python Import,Vscode Debugger,我有一个和平的代码如下: 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) samplebenis

我有一个和平的代码如下:

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”。。。但我不知道在哪里。 即使电脑重新启动后,它仍然存在于内存中的某个地方。Idk,这个目录中没有新文件,什么都没有

情况说明。现在,问题来了

如何正常调试? VScode保存的地方是“a.txt”


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

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

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

如果希望在调试模式下运行代码,就像它在命令行中运行一样,那么在vscode的调试器中编辑launch.json文件以使用所需的目录

对于文件的读写,除非在读写之间执行其他任务,否则可以重用同一个文件对象。但是您需要返回到文件的开头。

这可能会对您有所帮助。