【问题标题】:Running Python in CMD - Cannot create file在 CMD 中运行 Python - 无法创建文件
【发布时间】:2021-04-16 10:20:59
【问题描述】:

我试图通过 shell (CMD) 调用 python 文件,但遇到了一些问题。

当我通过双击 .py 文件或通过 Python IDLE 编辑器运行我的 .py 文件时,它运行得很好,并按应有的方式创建文件。

但是当我通过命令行运行它时,它会运行文件,但不会“打开”/创建文件。

我假设/认为它可能与相对文件路径有关,但我不确定

脚本是:

from __future__ import print_function
import sys
import os
import ctypes    
#-----File-Handling-------------------  

#Remove previous output file
if os.path.exists("Temp_py_out.txt"):
  os.remove("Temp_py_out.txt")

#create file:
tempfile = open("Temp_py_out.txt", "w+")
tempfile.write("0\nNo errors\nPar1\nPar2\nPar3\nPar4\nPar5\nPar6\n")

tempfile.close()
print("File OK")

编辑:我可以看到它创建了一个文件,但不是在 .py 所在的文件夹中,而是在我的“C:\Users\meg”文件夹中创建它,这是我的 CMD 所在的默认文件夹当我打开 CMD 时。

如何让 python 强制将其放在文件所在的同一文件夹中?

【问题讨论】:

  • 你是如何使用 CMD 运行文件的?调用是什么?
  • C:\Users\meg>python "C:\Users\meg\Desktop\PYTEST\test.py" 它以 File OK 响应,就像我的脚本要求它做的那样,所以它是打开脚本,它不会在我的 .py 文件所在的文件夹中创建文件 编辑:我可以看到它确实创建了一个文件!但它在我的 C:\Users\meg 文件夹中创建它,而不是在文件位于

标签: python file cmd path relative-path


【解决方案1】:

使用该命令运行

C:\Users\meg>python "C:\Users\meg\Desktop\PYTEST\test.py"

将使用您当前的工作目录C:\Users\meg,而不是您的 Python 文件的位置。检查该文件夹以查看是否有您需要的文件。

【讨论】:

  • @Martin.E 您需要更改工作目录。启动命令提示符时,运行cd C:\Users\meg\Desktop\PYTEST\ ,然后python test.py 将执行您想要的操作。
  • 或者您也可以使用 Python:os.chdir('C:\\Users\\meg\\Desktop\\PYTEST\\')。请注意,我使用了 2 个反斜杠,因为在 Windows 以外的任何地方,反斜杠都表示特殊字符。
  • @Martin.E 使用os.chdir(Path(__file__).parent.absolute())。要了解更多信息,请查看here
  • 非常感谢!正是我想要的,祝您有美好的一天
  • 注意 chdir 需要一个字符串,所以必须使用 os.chdir(str(Path(file).parent.absolute()))
【解决方案2】:

你从“c:\Users\meg”运行程序,所以你的脚本的工作目录可能在那个路径上,而不是在“C:\Users\meg\Desktop\PYTEST\test.py”上

您可以通过在您的代码中写入以下行来测试它: 打印(os.getcwd())

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-16
    • 2018-09-24
    • 1970-01-01
    • 2011-02-18
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    相关资源
    最近更新 更多