如何使用 python 打印子目录名称
How to print the subdirectory name using python
我的代码扫描了'Monitors'文件夹下的目录和子目录,但不知怎么的,我无法打印子目录名称。
monitors是父目录,dell是子目录,io是dell下的文件。
-Monitors
-------- Cab.txt
--- Dell
-------- io.txt
-------- io2.txt
我的父目录和代码
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) + "\n" \
+ "File Created on: " + created(os.path.join('E:\Logs\Monitors\', item)) + "\n" \
print str;
输出
E:Logs\Monitors\Cab.txt
E:Logs\Monitors\io.txt
E:Logs\Monitors\io2.txt
我想要的输出
E:Logs\Monitors\Cab.txt
E:Logs\Monitors\Dell\io.txt
E:Logs\Monitors\Dell\io2.txt
我尝试使用 path.join 中的变量,但以错误结束。
不使用os.listdir()
,而是使用os.walk()
遍历树中的所有目录:
for dirpath, dirnames, filenames in os.walk(parent_dir):
for filename in filenames:
full_path = os.path.join(dirpath, filename)
print 'File Name: {}\nFile Created on: {}\n'.format(
full_path, created(full_path))
os.walk()
的每次迭代都会为您提供有关一个目录的信息。 dirpath
是该目录的完整路径,dirnames
和 filenames
是该位置的目录和文件名列表。只需对文件名使用循环来处理每个文件名。
我的代码扫描了'Monitors'文件夹下的目录和子目录,但不知怎么的,我无法打印子目录名称。
monitors是父目录,dell是子目录,io是dell下的文件。
-Monitors
-------- Cab.txt
--- Dell
-------- io.txt
-------- io2.txt
我的父目录和代码
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) + "\n" \
+ "File Created on: " + created(os.path.join('E:\Logs\Monitors\', item)) + "\n" \
print str;
输出
E:Logs\Monitors\Cab.txt
E:Logs\Monitors\io.txt
E:Logs\Monitors\io2.txt
我想要的输出
E:Logs\Monitors\Cab.txt
E:Logs\Monitors\Dell\io.txt
E:Logs\Monitors\Dell\io2.txt
我尝试使用 path.join 中的变量,但以错误结束。
不使用os.listdir()
,而是使用os.walk()
遍历树中的所有目录:
for dirpath, dirnames, filenames in os.walk(parent_dir):
for filename in filenames:
full_path = os.path.join(dirpath, filename)
print 'File Name: {}\nFile Created on: {}\n'.format(
full_path, created(full_path))
os.walk()
的每次迭代都会为您提供有关一个目录的信息。 dirpath
是该目录的完整路径,dirnames
和 filenames
是该位置的目录和文件名列表。只需对文件名使用循环来处理每个文件名。