【问题标题】:Python script works when called from cmd but not via WindowsPython 脚本在从 cmd 调用但不能通过 Windows 调用时有效
【发布时间】:2015-11-23 17:18:38
【问题描述】:

所以我编写了一个脚本来对文件夹中的一些文件进行排序。它工作得很好,直到我尝试将一些文件的路径写入 .txt 文件夹。

f = open("./output.txt", "w")   
f.write(output)
f.close()

就是这样。

如果我通过 cmd 运行脚本,它会创建文件、添加输出并退出。如果我通过双击运行它,它会对文件夹进行排序并在打开文件之前关闭。

另外我不知道如何阻止提示在失败后立即关闭,所以我不知道我得到了哪个错误。

任何帮助将不胜感激。

【问题讨论】:

  • 你能用一个你知道你有写权限的目录中的输出文件的完整路径来尝试它,而不是./output.txt吗?
  • 另外,虽然有点笨拙,但您可以通过以input("Press any key to close") 结束程序来强制窗口打开。尽管您可能需要使用try/except 才能达到这一目标。
  • @BlackVegetable 有效,但没有显示任何错误,它只是在打印“opening .txt”(我添加了 ofc)后暂停。
  • 只是一个猜测,但我敢打赌,您正在写入一个您确实有权访问的文件,但它与您从 cmd 运行时相对于不同的位置。
  • 如果你可以让它显示信息,试着让它打印os.path.abspath('./output.txt'),看看它真正想写的地方

标签: python python-2.7


【解决方案1】:

问题是我当前的工作目录在打开文件时设置为 System32。使用os.chdir(path) 更改工作目录后,创建文件没有问题。

不过,我不太确定为什么会发生这种情况,因为使用不同的脚本做同样的事情我没有问题......并且使用 open 函数和我有权访问的文件的直接路径没有也可以工作。

但是,嘿,它是固定的。

【讨论】:

    猜你喜欢
    • 2019-10-11
    • 1970-01-01
    • 2012-09-11
    • 1970-01-01
    • 2018-08-05
    • 1970-01-01
    • 2020-09-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多