我在TextWrangler中写了以下内容:
directory = raw_input("See contents of: ")
for root, dirs, files in os.walk(directory):
print root, dirs, files
不幸的是,当我在终端中运行它并通过在Dock中键入或拖动文件夹来分配目录路径时,没有任何反应。甚至没有错误消息。另一方面,当我在TextWrangler中输入以下内容然后在终端中运行程序时,它运行正常。
for root, dirs, files in os.walk("/Users/paulpatterson/Documents/Python"):
print root, dirs, files
我的问题是,为什么os.walk不接受变量形式的路径。这本书 我正在使用它表明它应该像我在网上看到的大多数例子一样,同时试图解决这个问题。
答案 0 :(得分:2)
在循环之前只需print directory
即可查看您真正获得的路径。这就是问题,而不是os.walk
不接受变量。
将OSX下的文件夹放入终端时:
两者都会阻止os.walk找到路径。你没有得到错误很简单。 os.walk没有给出那个案例的错误。它根本不会迭代不存在的路径。
答案 1 :(得分:0)
不幸的是,当我运行它时 终端并分配目录路径 通过在中输入或拖动文件夹 码头没有任何反应。
我试过这个,正如你所说,将文件夹拖到我的终端(我在Linux上),它显示了用引号括起来的路径。
在raw_input
解决问题后删除引号
import os
directory = raw_input("See contents of: ")
directory = directory.strip()
if directory[0] == "'" and directory[-1] == "'":
directory = directory[1:-1]
print directory
for root, dirs, files in os.walk(directory):
print root, dirs, files