【发布时间】:2017-03-30 21:14:36
【问题描述】:
我在下面有一个简单的过程来列出文件夹的内容:
def some_process(self):
dir3 = os.listdir('/Users/somepath/programming/somepathanother/Data_samples')
for d in dir3:
if os.path.isdir(d):
print "DIR: " + d
elif os.path.isfile(d):
print "FILE: " + d
print "PATH THREE:"
print str(dir3)
sys.exit(0)
Data_samples 文件夹的实际内容是: 目录1 目录2 目录3 目录4 文件.zip 另一个文件.zip 目录5
进程的输出没有按预期工作。对于它只是打印的文件:
FILE .DS_Store
没有别的(应该打印出file.zip和anotherfile.zip)
我也意识到,如果我将 resourcetest.py 文件及其对应的 ini 文件复制到该文件夹中并运行它,那么它确实会看到它
FILE: .DS_Store
FILE: resourcetest.ini
FILE: resourcetest.py
print str(dir3)的完整输出
PATH THREE:
['.DS_Store', 'dir1', 'dir2', 'dir3', 'dir4', 'resourcetest.ini','resourcetest.py', 'test.file', 'test.zip', 'dir5']
然后还应该将 dir1 dir2 dir3 dir4 打印为 DIR: " ,但是这一切都没有发生,我不知道为什么,尽管奇怪的是,如果我从列出的文件夹中执行此代码,它确实显示了所有内容正确。
这是从 mac os x 终端运行 python 2.7 的异常情况,还是我在这里遗漏了其他东西。我对使用 listdir 和 isdir 的想法是错误的吗?
【问题讨论】:
-
.DS_Store 是由 osx 创建的...你能给我们
print(dir3)的输出吗? -
添加了更多代码,我有点认为这是权限问题。我在finder中复制的文件在那里。我在终端中通过触摸构建的那些,没有看到任何目录。如果我从 listdir 中指定的文件夹运行它,这又会发生变化,然后它会按预期工作。
标签: python python-2.7