【问题标题】:Running Python code from Notepad++ doesn't generate .txt files从 Notepad++ 运行 Python 代码不会生成 .txt 文件
【发布时间】:2021-06-03 20:51:54
【问题描述】:

所以目前我正在练习 Python,我有这行代码:

print(f"{someList}", file=open("generatedList.txt", "w"))

当我尝试使用 python "$(FULL_CURRENT_PATH)" 的运行命令在 Notepad++ 上运行它时,它不会生成s .txt 文件但在Notepad++ 文件夹。当我尝试对 IDLE 运行完全相同的代码时,它会在工作文件夹中生成 .txt 文件。

这是为什么呢?我应该对运行命令进行一些更改吗?我更喜欢 Notepad++ 作为文本编辑器。

顺便说一句,我正在使用 Python 3.8.5

【问题讨论】:

  • 生成文本文件在当前目录。 Notepad++ 进程的当前目录不是当前编辑文件的目录。查看启动 Notepad++ 的快捷方式的属性。 “开始于:”字段确定 Notepad++ 将用作当前目录的路径。
  • @Tomalak 感谢您的回复!我确实尝试使用Everything.exe 搜索文件名(generatedList.txt),但除非我使用 IDLE 运行它,否则该文件实际上不存在于任何地方。我刚才也仔细检查了一下,在Notepad++的目录下没有找到generatedList.txt
  • Everything.exe 的好主意! :) 无论如何都要查看“Start in:”值,因为您可能没有对该目录的写入权限。通常它默认为程序的安装目录,并且对于普通用户是写保护的。将其更改为%USERPROFILE%
  • Everything.exe 为我省去了很多麻烦 :D 你是对的!问题是许可。我刚刚在 Notepad++ 文件夹属性下编辑了Security,并允许用户使用Full control。但是如何让它在保存 .py 文件的当前文件夹上生成呢?
  • 不,不要那样做,把权限改回来。修改“开始于”值。我不是 Notepad++ 用户,但我希望有一种方法可以在运行命令之前设置目录。

标签: python notepad++


【解决方案1】:

所以我不知道这是否可以,但我想我现在知道如何将其保存在您想要的任何目录我刚刚尝试并尝试过。

从此代码:

print(f"{flippedCoins}", file=open("generatedFlips.txt", "w"))

您只需要添加要保存它的目录!

print(f"{flippedCoins}", file=open("C:\The\Directory\You\Want\to\Save\it\generatedFlips.txt", "w"))

【讨论】:

    【解决方案2】:

    您可以使用__file__ 变量来检索脚本的位置,并使用它为您的输出文件构建绝对路径:

    import os.path
    
    SCRIPT_DIR = os.path.abspath(os.path.dirname(__file__))
    FILE_PATH = os.path.join(SCRIPT_DIR, "generatedList.txt")
    ...
    with open(FILE_PATH, "w") as fh:
        print(f"{someList}", file=fh)
    

    如果您更喜欢使用本地文件路径,可以将工作目录更改为要转储文件的目录:

    import os
    os.chdir("c:/path/to/some/directory")
    

    如果从 IDE 启动脚本时找不到输出文件,并且想弄清楚脚本的工作目录是什么,可以打印它:

    import os
    print(os.getcwd())
    

    您始终可以提供文件的绝对路径,无论脚本从何处执行:

    with open("c:/path/to/some/file.txt", "w") as fh:
        print(f"{someList}", file=fh)
    

    【讨论】:

    • 我会考虑这个的!谢谢!
    • 或使用较新的pathlibfull_file_name = pathlib.Path(__file__).parent / 'generatedList.txt')
    猜你喜欢
    • 1970-01-01
    • 2021-12-29
    • 2015-10-20
    • 1970-01-01
    • 2020-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-27
    相关资源
    最近更新 更多