我已经编写了非常小的代码来检查它是否是文件。我本以为我应该得到"是"的印刷品,但我没有得到。我犯了什么愚蠢的错误吗。
os.listdir(os.getcwd()+"/../py")
a = ['a.py', 'a.pyc']
>>> for _a in a:
... if os.path.isfile(_a):
... print "yes"
您需要提供完整路径;您只提供了一个相对路径,因此Python在当前工作目录中查找这些路径,而os.getcwd()
中没有名为a.py
的文件。
首先将另一个目录的路径存储在一个变量中:
path = os.path.abspath('../py')
for name in os.listdir(path):
if os.path.isfile(os.path.join(path, name):
print "yes", name, "is a file!"
我使用os.path.abspath()
而不是os.getcwd()
将相对路径转换为标准化的绝对路径,然后使用os.path.join()
为os.listdir()
返回的名称列表构造绝对路径。
a.py
在当前目录中查找名为a.py
的文件。您的代码似乎暗示您应该提供一条路径(../py
?)
例如:
>>> for _a in a:
... if os.path.isfile(os.path.join('../py', _a)):
... print "yes"