python提取文件夹中的文件名运行不正常。

img


import os
for parent, dirnames, filenames in os.walk(os.getcwd()):
    for filename in filenames:
        file_path = os.path.join(parent, filename)
        extensions = os.path.splitext(file_path)[1]
        print(file_path)

这个代码应该把包括子文件夹中的文件路径全部输入,但为什么只能输出一个py文件?新建窗口有时候能正常显示,有时候不能正常显示。

根据你提供的代码,可以看到这个 Python 脚本使用了递归方式遍历目录中的所有文件,并将每个文件的完整路径输出到控制台。但是在这段代码中,只有最后一个找到的 .py 文件被打印了出来,因为 file_path 这个变量在每次迭代中都被覆盖了,导致前面找到的 .py 文件路径被覆盖了。
为了输出所有找到的 .py 文件路径,需要将它们存储到一个列表中,然后在遍历完成后一次性打印出来。修改后的代码如下:

import os

# 存储所有找到的 .py 文件路径
py_files = []

# 遍历目录中的所有文件
for parent, dirnames, filenames in os.walk(os.getcwd()):
    for filename in filenames:
        # 获取文件的完整路径
        file_path = os.path.join(parent, filename)

        # 如果文件是 .py 文件,则添加到列表中
        if file_path.endswith('.py'):
            py_files.append(file_path)

# 打印所有找到的 .py 文件路径
for file_path in py_files:
    print(file_path)


在这个代码中,使用了一个列表 py_files 来存储所有找到的 .py 文件路径。在遍历目录时,如果找到一个 .py 文件,就将其路径添加到 py_files 列表中。在遍历完成后,再遍历 py_files 列表,打印出所有找到的 .py 文件路径。
这样就可以输出目录及其子目录中的所有 .py 文件路径了。

python调试三板斧 https://ask.csdn.net/questions/7908322/54130133

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7797329
  • 你也可以参考下这篇文章:P-1.4.3 Python实现OW自动瞄准的起与落
  • 除此之外, 这篇博客: python调用另一个.py文件中的类和函数或直接运行另一个.py文件中的 不同目录下 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 如果按照上面的方法会报错

    error sh: /Users//Desktop/.py: Permission denied

    正确方式为

    import os
    os.system('{} {}'.format('python',loc))
    # 或者是
    os.system('python {}'.format(loc))
    

    这里的loc为字符串,用相对路径即可。
    但这样并不能把运行的文件得到的变量输出出来,如果想把结果输出出来并进一步运算,参考文章,所采用的方法是

    # 所采用的方法如下
    # from 变量所在文件名 import 变量名
    
    import os
    # os.system('{} {}'.format('python','A/main.py'))
    os.system('python {}'.format('A/main.py'))
    
    from A.main import c  # 如果在同一目录下则直接 from main import c 即可
    d = c+1
    print('d=',d)
    
  • 您还可以看一下 CSDN就业班老师的Python全栈工程师特训班第十四期-直播回放课程中的 Python全栈工程师特训班第十四期-第十二周-爬虫第三周-03小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    针对这个问题,我需要先看一下你的代码。可以尝试使用os.walk()函数来实现递归遍历文件夹中的所有文件和子文件夹,同时使用os.path.splitext()函数提取文件名。代码可以参考如下:

    import os
    
    # 遍历文件夹中的所有文件和子文件夹
    def traverse_folder(folder_path):
        for root, dirs, files in os.walk(folder_path):
            for file in files:
                # 提取文件名
                filename, ext = os.path.splitext(file)
                # 输出文件名
                print("文件名:", filename, ",扩展名:", ext)
    
    # 测试代码
    traverse_folder("your_folder_path")
    

    如果你还有其他问题,可以继续提出来。