How to print the subdirectory name using python
我的代码扫描的目录和子目录下的文件夹"监视器",但在两个somehow打印不成功的子目录的名称。
监视器是戴尔parent目录和子目录的IO和冰是在戴尔的档案。
1 2 3 4 5 | -Monitors -------- Cab.txt --- Dell -------- io.txt -------- io2.txt |
我的父母和代码目录
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | parent_dir = 'E:\Logs\Monitors' def files(parent_dir): for file in os.listdir(parent_dir): if os.path.isfile(os.path.join(parent_dir, file)): yield file def created(file_path): if os.path.isfile(file_path): file_created = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(os.path.getctime(file_path))) return file_created len = (item for item in files(parent_dir)) str ="" for item in len: str +="File Name:" + os.path.join('E:\\Logs\\Monitors\', item) +" " \ +"File Created on:" + created(os.path.join('E:\\Logs\\Monitors\', item)) +" " \ print str; |
输出
1 2 3 | E:Logs\Monitors\Cab.txt E:Logs\Monitors\io.txt E:Logs\Monitors\io2.txt |
我的desired输出
1 2 3 | E:Logs\Monitors\Cab.txt E:Logs\Monitors\Dell\io.txt E:Logs\Monitors\Dell\io2.txt |
我想使用的变量,但在path.join端与错误。
不要使用
1 2 3 4 5 6 7 | for dirpath, dirnames, filenames in os.walk(parent_dir): for filename in filenames: full_path = os.path.join(dirpath, filename) print 'File Name: {} File Created on: {} '.format( full_path, created(full_path)) |
在
1 2 3 | if os.path.isfile(os.path.join(parent_dir, file)): str +="File Name:" + os.path.join('E:\\Logs\\Monitors\', item) +" " \ |
这一行似乎绕过了子目录名。你基本上是在做下面的事情;
1 2 | If file is file: print('E:\Logs\Monitors\' + filename) |
这可能是您的问题的原因,因为您实际上没有加入子目录。
这些可能有帮助;
如何获取python中的所有直接子目录