无法使用python打印列中的目录列表

时间:2019-02-20 17:18:31

标签: python python-3.x

我正在使用脚本,它将在列中使用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

1 个答案:

答案 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']);