为什么python脚本在Spyder vs cmd提示符下的工作方式不同

时间:2017-05-27 16:52:21

标签: python cmd spyder pathlib

我有以下脚本 test.py

import pathlib, os

path = "C:\\Windows"
pathparent = pathlib.Path("C:\\Windows").parent

if os.path.exists(pathparent):
    print("path exists")

当我在Spyder IDE中执行它时,我得到了这个:

path exists

当我从命令提示符( python test.py )运行它时,我得到了这个:

Traceback (most recent call last):
  File "test.py", line 6, in <module>
    if os.path.exists(pathparent):
  File "C:\Anaconda3\lib\genericpath.py", line 19, in exists
    os.stat(path)
TypeError: argument should be string, bytes or integer, not WindowsPath

我知道为什么会得到不同的结果?

注意:我知道在 str()中包装 pathparent 会使 if 语句成功,但我想知道的是为什么两种环境产生不同的结果。

1 个答案:

答案 0 :(得分:2)

os.path.exists()开始接受Python 3.6中的路径对象,并且您的cmd提示中出现问题,因为它运行的是Python 3.5,将其更改为3.6以解决您的问题。