【问题标题】:Can't open text file on VSC with python无法使用 python 在 VSC 上打开文本文件
【发布时间】:2020-04-26 00:53:46
【问题描述】:

您好,我从 python 和 VSC 开始,所以我在互联网课程作业中编写了这段代码,该代码在我的命令提示符下运行良好,但是当我在 VSC 上运行时它就无法运行:

fh = open("mbox-short.txt")
count = dict()
for line in fh:
    if line.startswith("From "):
        email = line.split()[1]
        count[email] = count.get(email,0)+1

bigemail = None
emailcnt = None
for key,value in count.items():
    if bigemail is None or value > emailcnt:
        bigemail = key
        emailcnt = value

print(bigemail,emailcnt)

该文件与我的代码位于同一文件夹中,编译器的错误是:

Exception has occurred: FileNotFoundError
[Errno 2] No such file or directory: 'mbox-short.txt'
  File "C:\Users\....\Documents\Python\...\PFE\Data Struct\HW_9.4.py", line 1, in <module>
    fh = open("mbox-short.txt")

希望你能帮我解决这个问题。

【问题讨论】:

  • 在 open 语句中添加文件的完整路径。从VS运行时,工作目录和脚本所在的目录不一样。
  • 您从该错误消息中了解到什么?顺便说一句,您应该使用上下文管理器来处理文件对象。

标签: python visual-studio-code


【解决方案1】:

你需要用内容定义一个.vscode/launch.json文件

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Python: Current File",
      "type": "python",
      "request": "launch",
      "program": "${file}",
      "console": "integratedTerminal",
      "cwd": "${workspaceFolder}/${relativeFileDirname}"
    }
  ]
}

您需要将当前工作目录更改为当前文件所在目录。

【讨论】:

    【解决方案2】:

    您似乎是从另一个地方运行代码,而您的文件夹位于另一个地方。你只需要python W_9.4.py 在你的代码和文本文件显示它的同一目录中。然后就可以了。

    如果您不想直接访问,则必须提供文本文件的完整路径。

    【讨论】:

    • 感谢您的回答!!该文件实际上在同一个文件夹中,但显然我的 .vscode/launch.json 在这种情况下缺少 cwd 行:"cwd": ${workspaceFolder}/${relativeFileDirname}"
    【解决方案3】:

    两个快速选项:

    1 - 将 mbox-short.txt 复制到 Python 脚本的同一位置 C:\Users\....\Documents\Python\...\PFE\Data Struct\ 以便能够像现在一样使用相对路径

    2 - 提供mbox-short.txt当前位置的绝对路径

    fh = open("C:\\absolute\\path\\to\\mbox-short.txt")
    # fh = open("C:/absolute/path/to/mbox-short.txt") # also works
    

    阅读:

    【讨论】:

    • 感谢您提供的信息和阅读链接,这真的很有趣,因为我是高级编程的新手,我感谢所有信息以更深入地理解。 :D 即使我的实际问题是未完全定义的 .vscode/launch.json 我会更频繁地使用其他文件的绝对路径:)
    【解决方案4】:

    不要输入文件名,而是使用确切的位置。

    例如:C://user/desktop/folder/mbox-short.txt

    【讨论】:

    • 感谢奥斯卡提供的信息!!我将在其他新项目上使用绝对路径:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-20
    • 1970-01-01
    • 2011-06-20
    • 2018-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多