python os.path不';不能在CMD中工作,但可以在eclipse中工作

python os.path不';不能在CMD中工作,但可以在eclipse中工作,path,python-2.7,Path,Python 2.7,我想在当前文件夹下浏览.py文件所在的位置(Python2.7)。但是,它可以在我的eclipse中工作,但不能在cmd中工作。代码如下: 导入操作系统 导入系统 def检查文件(路径): fileDict=[] 对于os.walk(路径)中的dirPath、dirname和文件名: 对于文件名中的文件名: 如果os.path.splitext(文件名)[1]='.entity': 追加(os.path.join(dirPath,fileName)) 打印路径 返回文件dict fileDict

我想在当前文件夹下浏览.py文件所在的位置(Python2.7)。但是,它可以在我的eclipse中工作,但不能在cmd中工作。代码如下:

导入操作系统
导入系统
def检查文件(路径):
fileDict=[]
对于os.walk(路径)中的dirPath、dirname和文件名:
对于文件名中的文件名:
如果os.path.splitext(文件名)[1]='.entity':
追加(os.path.join(dirPath,fileName))
打印路径
返回文件dict
fileDict=[]
fileDict=checkFiles(“.”)
打印文件目录
现在我在这个文件夹下有5.entity文件,所以当打印fileDict时,它应该打印列表中的5个元素。然而,这在eclipse中运行良好,但在cmd中它会向我返回一个空列表。有人能帮我解决这个问题吗


哦,顺便说一句,我在生成xml文件时遇到了另一个问题。我认为它也有同样的问题。当我使用eclipse时,它可以正常工作,但当我使用cmd时它不会创建任何文件。

首先,不要使用字符串连接来连接路径。使用
os.path.join

其次,不要对路径分隔符使用
\\
<代码>/是通用的,适用于Windows:

fileDict.append(os.path.join(dirPath, fileName))
然后当你叫它:

fileDict = checkFiles('.')
此外,在循环时,使用相同的变量名覆盖列表:

for fileNames in fileNames:
比如说:

def检查文件(路径):
fileDict=[]
对于os.walk(路径)中的dirPath、dirname和文件名:
对于文件名中的文件名:
如果os.path.splitext(文件名)[1]='.entity':
追加(os.path.join(dirPath,fileName))
返回文件dict
fileDict=checkFiles(“.”)
注意:此脚本假定您的文件位于运行脚本的位置下。。。而不是脚本本身的位置

C:\SomeDir> python C:\path\to\script.py 
。。。您的文件需要在
C:\SomeDir
下,而不是
C:\path\to\


通过eclipse运行脚本时,当前工作目录就是该工作区。但是,当您通过cmd运行它时,它会显示您在currect目录中的位置

非常感谢jdi,但问题仍然存在。在cmd中运行时,它仍然将fileDict打印为空列表([])对我来说。你是如何运行你的脚本的?哦,当我将checkFile更改为另一个实际路径,如:r'C:\Users\myusername\Desktop\SampleEntities\SampleEntities'时,它工作正常。你没有从包含文件的同一目录运行脚本。是的,是的,是的,现在有意义了!非常感谢你!!我现在开始做这方面的研究。再次感谢你