我正在使用脚本,它将在列中使用scandir打印目录。我能够成功扫描目录并查看文件,但全部都在一行中。
我试图获得的最终结果是通过添加两个for循环在列中进行打印。
任何引导我朝正确方向的帮助将不胜感激。
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循环并添加以下print语句,这就是我得到的。
print(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
答案 0 :(得分:0)
name
方法返回os.DirEntry
对象,而不是文件名。您应该使用对象的os.listdir
属性,或者使用for
方法,因为您不需要文件的其他属性。此外,也不需要嵌套的for file in os.scandir(path):
print(file.name)
循环,因为您可以简单地遍历文件名并将每个文件名打印在单独的行上:
for filename in os.listdir(path):
print(filename)
或:
var gulp = require('gulp');
var sass = require('gulp-sass');
gulp.task('sass', function(){
return gulp.src("assets/sass/*.scss")
.pipe(sass()) // Converts Sass to CSS with gulp-sass
.pipe(gulp.dest('assets/css/'))
});
// gulp.task('watch',['which','tasks', 'to', 'run', 'once', 'watched', 'element', 'triggers'], function(){
// //riggers for the watch
// })
gulp.task('watch', gulp.series('sass'), function(){
gulp.watch('assets/sass/**/*.scss', ['sass']);
});
// gulp.task('default', ['sass', 'serve']);