【问题标题】:Visual Studio Code Python refuses to write to fileVisual Studio Code Python 拒绝写入文件
【发布时间】:2022-11-18 18:06:42
【问题描述】:

我试图让程序将数据输出到 JSON 文件,但 VS 代码或 Python 本身似乎有问题。具体来说,我试图输出这个(Tlist 和 Slist 是整数列表):

output = {"Time": Tlist, "Space": Slist}
json_data = json.dumps(output, indent=4)
with open("sortsOutput.json", "a") as outfile:
    outfile.write(json_data)

但似乎什么也没有发生。 SortsOutput.json 从未创建过,即使使用预先存在的 SortsOuput.json 也没有任何反应。哎呀,这甚至不起作用:

out = open("blah.txt", "w")
out.write("Egg")
out.close()

我的软件可能出了什么问题才会发生这种情况?我正在使用 Python v2022.16.1 作为记录,每次程序第一次运行时,命令“conda activate base”都会出现一些错误文本,这些文本似乎不会影响我的程序的其余部分,所以是是吗?我该如何解决?

【问题讨论】:

  • 您的 Python“版本”没有意义。你可能想检查一下。还请记住,sortsOutput.json 将在您的 Python 脚本所在的同一目录中创建。你可能找错地方了
  • “哎呀,这甚至都行不通:”你认为它为什么行不通?尤其是:在哪里你认为书面文件应该是什么?为什么你认为它应该在那里吗?
  • (顺便说一句,JSON 数据格式在追加时无法正常工作。一个 JSON 文件应该描述一个单身的JSON 数组或对象。)

标签: python visual-studio-code file-io


【解决方案1】:

out = file.open("blah.txt", "w")

在你的第二个例子中,你似乎不需要file.。 open() 是 Python 的内置方法。 可以直接使用out = open("blah.txt", "w")。

同时,这个问题似乎与vscode无关。

我认为这个问题更有可能是由于路径问题。您执行的.json文件在工作空间下一级目录下不存在。

例如,

Workspace
 -.vscode
  -sortsOutput.json
 -test.py

需要以工作空间为根目录,告诉python文件的具体位置:

with open(".vscode/sortsOutput.json", "a") as outfile:
    outfile.write(json_data)

【讨论】:

    【解决方案2】:

    我无法使用 MS Visual Studio Community 写入文件, 就我而言,这是一个编码问题。我在:https://peps.python.org/pep-0263/ 找到了解决方案 特别注释:# coding=<encoding name>在python脚本的第一行 (就我而言:# coding=utf-8)

    【讨论】:

      猜你喜欢
      • 2018-08-12
      • 1970-01-01
      • 1970-01-01
      • 2019-10-14
      • 2021-07-28
      • 2020-03-28
      • 2022-10-13
      • 2021-11-07
      • 1970-01-01
      相关资源
      最近更新 更多