对如何列出或操作系统列表目录()使用Python 3

2024-05-19 19:28:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我得到了下面的代码和方法列表操作系统列表目录()工作很奇怪:

1.

import os
print(os.listdir(r'C:\Users\output'))

退货:

^{pr2}$

正如预期的那样,它是一个包含所有文件名的列表。在


2.

import os
for filenames in os.listdir(r'C:\Users\output'):
    for filename in filenames:
        print(filenames)

退货:

AAIT.txt
AAIT.txt
AAIT.txt
AAIT.txt
AAIT.txt
AAIT.txt
AAIT.txt
AAIT.txt
AAL.txt
AAL.txt

它打印每个名字文件八次。为什么,filenames是一个列表,它应该像前一个例子一样打印整个列表,就像我的文件夹中有文件一样多次。在


3.

import os
for filenames in os.listdir(r'C:\Users\output'):
    for filename in filenames:
        print(filename)

退货:

A
A
I
T
.
t
x
t
A
A
...

每行一个字符,很奇怪为什么?我希望这段代码按照我想要的方式工作,即每行打印一个文件名。在

如何让python每行打印一个文件名?在


Tags: 代码inimporttxt列表foroutputos
1条回答
网友
1楼 · 发布于 2024-05-19 19:28:41

示例2中,您打印的结果文件名的次数与文件名中的字符数相同:

for filenames in os.listdir(r'C:\Users\output'):
    for filename in filenames:
        print(filenames)

这里filenames是一个文件名。循环该文件名会给您单独的字符,绑定到filename(单数),但是您可以为每个字符打印filenames复数):

^{pr2}$

我在这里添加了character打印来说明发生了什么。包含8个字符的文件名将打印8次,包含7个字符的文件名(如'AAL.txt')将打印7次,依此类推

在示例3中,您只是打印单个字符。在

移除多余的循环,你不需要它。只需循环os.listdir()的值:

import os

for filename in os.listdir(r'C:\Users\output'):
    print(filename)

相关问题 更多 >