【发布时间】:2019-02-20 17:18:31
【问题描述】:
我正在工作的脚本将在列中使用 scandir 打印目录。我能够成功地扫描目录并查看文件,但都在一行中。
我试图达到的最终结果是通过添加两个加法循环在列中打印。
任何能引导我走向正确方向的帮助将不胜感激。
import os
import re
path = "//xdrive/workdir/"
dirs = os.scandir(path)
dlis=[]
for file in dirs:
dlis.append(file)
for row in dlis:
for item in row:
print(item)
print("")
如果我不添加 for 循环并添加以下打印语句,这就是我得到的。
打印(dlis)`[<DirEntry 'web_2019-02-06.tar.gz'>, <DirEntry 'web_2019-02-07.tar.gz'>, <DirEntry 'web_2019-02-09.tar.gz'>,<DirEntry 'web_2019-02-10.tar.gz'>, <DirEntry 'web_2019-02-10.tar.gz'>]
` 这是我努力得到的最终结果。
web_2019-02-06.tar.gz
web_2019-02-07.tar.gz
web_2019-02-09.tar.gz
web_2019-02-10.tar.gz
web_2019-02-10.tar.gz
这是我得到的错误。
File "Backup_list.py", line 13, in <module>
for item in row:
TypeError: 'nt.DirEntry' object is not iterable
【问题讨论】:
-
请发布您当前获得的输出示例,以及您期望的输出示例。
-
您的代码根本不起作用,因为
os.scandir方法返回os.DirEntry对象而不是文件名。也不需要嵌套的for循环。 -
@blhsing 嵌套的
for
循环是在列中打印出结果。
标签: python python-3.x