druid_yy 2023-04-15 22:48 采纳率: 11.1%
浏览 10

我想把一个文件夹中的文件名爬出来,然后这样写的,报错,为什么:

我想把一个文件夹中的文件名爬出来,然后这样写的,报错,为什么:

import os

# 遍历文件夹中的文件
path = r"D:\各种模\选股结果"
file_list = []

for i in os.walk ( path ):
    if i.endswith('.txt'):

        file_list.append ( i )
    print ( file_list )

提示这样
C:\Users\大无畏\AppData\Local\Programs\Python\Python36\python.exe "D:/Program Files/JetBrains/PyCharm 2020.2/jbr/bin/D:/PycharmProjects/pythonProject7/get.py"
Traceback (most recent call last):
File "D:/Program Files/JetBrains/PyCharm 2020.2/jbr/bin/D:/PycharmProjects/pythonProject7/get.py", line 8, in
if i.endswith('.txt'):
AttributeError: 'tuple' object has no attribute 'endswith'

Process finished with exit code 1

  • 写回答

2条回答 默认 最新

  • starlight_2007 2023-04-15 23:23
    关注

    os.walk方法可以生成一个指定初始边界的迭代器,用于遍历指定目录下的文件和文件夹,若不指定结束边界,则默认自上而下地遍历从给定目录下的所有目录并读取文件名。由于os.walk生成迭代器,所以可以用next()方法取值。os.walk迭代器不能作为for循环的循环主体,所以报错如上。
    可以做出如下修改:

    import os
    path = r"D:\各种模\选股结果"
    file_list = []
    tp = next(os.walk(path))
    for i in tp[2]:
        if i.endswith('.txt'):
            file_list.append(i)
    print(file_list)
    
    评论

报告相同问题?

问题事件

  • 创建了问题 4月15日

悬赏问题

  • ¥100 三相直流充电模块对数字电源芯片在物理上它必须具备哪些功能和性能?
  • ¥30 数字电源对DSP芯片的具体要求
  • ¥20 antv g6 折线边如何变为钝角
  • ¥30 如何在Matlab或Python中 设置饼图的高度
  • ¥15 nginx中的CORS策略应该如何配置
  • ¥30 信号与系统实验:采样定理分析
  • ¥100 我想找人帮我写Python 的股票分析代码,有意请加mathtao
  • ¥20 Vite 打包的 Vue3 组件库,图标无法显示
  • ¥15 php 同步电商平台多个店铺增量订单和订单状态
  • ¥17 pro*C预编译“闪回查询”报错SCN不能识别