我刚刚离开了LPTHW而且我试图通过重命名脚本弄脏手。
我在尝试列出目录中的文件时遇到问题,代码是:
def rename_files():
for root, dirs, files in os.walk(path):
dirs_len = len(dirs)
for i in range(0, dirs_len):
print dirs[i]
以上代码将按预期正确显示目录列表。 但是,做这样的事情:
for root, dirs, files in os.walk(path):
dirs_len = len(dirs)
for i in range(0, dirs_len):
print dirs[i]
print files
将导致每个目录下的空列表。
我通过创建files_len并将其放置在嵌套的for循环中进行实验:
for root, dirs, files in os.walk(path):
dirs_len = len(dirs)
files_len = len(files)
for i in range(0, dirs_len):
print dirs[i]
print files_len
它导致0.
如果我将files_len放在第一个for循环中,则会产生3,这是目录中正确的文件数。
我希望它能打印出像:
我的照片
而我无法弄清楚如何构建我的代码以使其按照我的意愿运行。
你能指出我正确的方向吗?
非常感谢,非常感谢!
CNC中 这里的最终目标是查看每个目录,接收raw_input以更改文件名,一旦到达最后一个文件,移动到下一个目录,冲洗并重复。
例如:
Dir1中
- >重命名img1.png:img_1.png(< - raw_input)
- >重命名img2.png:img_2.png(< - raw_input)
- >重命名img3.png:img_3.png(< - raw_input)
Dir2中
- >重命名img1.png:img_1.png(< - raw_input)
- >重命名img2.png:img_2.png(< - raw_input)
- >重命名img3.png:img_3.png(< - raw_input)
依此类推,直到到达最后一个目录中的最后一个文件。
答案 0 :(得分:2)
您可以尝试这样的事情
for root, dirs, files in os.walk(path):
print("%s:" % root)
for f in files:
print ("-> %s" % f)
这将输出
我的照片:
- > img1.png
- > img2.png
SomeOtherFolder:
- > someotherfile.txt
...
答案 1 :(得分:0)
此代码对我有用:
@candidate = Candidate.find 1
@jobs = @candidate.candidate_jobs
答案 2 :(得分:0)
os.walk函数从顶部开始遍历所有文件夹。您不必手动迭代它返回的目标,因为它只是当前'根目录中的目录列表。文件夹,而'文件'是当前' root'中的文件列表。文件夹。
因此,这应该做你想要的:
for root, dirs, files in os.walk( path ):
print( "Root: %s\nTotal Files:%i" % ( root, len( files )))
for file in files:
print( "\t%s" % file )