如何使用python检查目录中是否仅存在txt文件?

时间:2018-07-04 06:19:51

标签: python

我必须检查一下while循环。我发现以下代码显示了没有while循环的文件。

for file in glob.glob("*.txt"):
    print(file)

但是如果我使用以下代码,它将无法在while循环中工作

a = os.listdir(my_path)
#print(a)
for file in glob.glob("*.txt"):
    print(file)

我正在尝试使用OS模块在python中编写观察者类型

4 个答案:

答案 0 :(得分:4)

while True:
    f = os.listdir(path)
    if len(f) > 0:
        for i in os.listdir(path):
            if i.endswith('.txt'):
                continue
            else:
                dosomething()
    time.sleep(5) #so loop checks files every 5 sec

这样,您只使用os模块,不需要glob。

答案 1 :(得分:2)

  • 使用os.listdir来获取文件夹中的所有文件
  • len获取文件总数
  • 使用sumstr.endswith列出理解以获取以“ .txt”结尾的计数文件

演示:

import os
a = os.listdir(my_path)
if len(a) == sum(1 for i in a if i.endswith(".txt")):
    print("All Text")

答案 2 :(得分:2)

import os
dr = os.listdir(my_path)
if len(dr) == len(filename for filename, file_extension in a if file_extension == '.txt')):
    #do stuff
    pass

答案 3 :(得分:2)

据我所知,您想要创建一个观察程序服务以在创建新文件时为您提供服务。

`
import glob
files = glob.glob("*.txt") # Check first time all the files
while True: # till you exit
    _old_files_count = len(files)  # Get count of files
    files = glob.glob("*.txt")
    if len(files) > _old_files_count:   # If new file is created.
        print(*files[_old_files_count:], sep="\n") # Printing all new files in new line.
`

它将为您提供在该特定目录中创建的新文件。 此外,通过一些调整,您还可以获取已删除的文件。 希望能帮助到你。 要使用os,只需在下面使用而不是glob行。

import os
files = [file for file in os.listdir() if file.endswith("*.txt")]