【问题标题】:How to print files in a directory without extension? PYTHON如何在没有扩展名的目录中打印文件? PYTHON
【发布时间】:2021-07-07 16:08:17
【问题描述】:

我使用 os.listdir() 遍历了我的目录,我有一些文件有扩展名,有些没有。如何在目录中搜索以查找并列出所有没有扩展名的文件。我不想列出所有这些,只是那些没有 .pub 扩展名的?

【问题讨论】:

  • 所以您可以使用if not what_ever.endswith('.pub')进行检查
  • 你可以过滤掉没有.pub子字符串的路径

标签: python operating-system


【解决方案1】:
import glob

files = glob.glob('YourDirectoryPath/*[!.pub]')

这是python文档中的glob

【讨论】:

    【解决方案2】:

    假设您有一个名为files 的字符串列表,其中每个字符串都是一个文件路径,那么如果您正在寻找不是.pub 的字符串,您可以检查字符串是否不包含@ 987654323@并打印出来,如:

    for file in files:
      if ".pub" not in file:
        print(file)
    

    如果您使用的是 Linux,出于好奇,您可以通过使用带有一些标准实用程序的 bash 轻松做到这一点,例如:

    find -type f -name '*.pub' > non-pub.txt
    

    一步一步我们有:

    • 使用find,它在大多数基于 Linux 的发行版中都可用;
    • -type f 将只搜索文件,而不是目录;
    • -name '*.pub' 会告诉我们哪些文件以.pub 结尾;
    • > non-pub.txt 会将结果发送到名为 non-pub.txt 的文件中。

    您可以在 Python 中使用 os 模块来使用它。例如,如果你真的想把它保存在一个文件中而不用它做任何事情,那么使用os.system() 就可以了:

    os.system("find -type f -name '*.pub'")
    

    或者,如果您想保留输出并在 Python 中操作结果:

    files = os.popen("find -type f -name '*.pub'").read().split("\n")[0:-1]
    

    如果您有带有换行符 \n 作为文件名的文件,这将不起作用,但这是我以前从未见过的事情。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-04-29
      • 2020-05-31
      • 2016-09-12
      • 1970-01-01
      • 2020-12-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多