簡體   English   中英

如何使用python檢查目錄中是否僅存在txt文件?

[英]How can I check if only txt file exists in a directory with 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中編寫觀察者類型

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。

  • 使用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")
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

好吧,據我了解,您想要的是創建一個觀察程序服務,以便在創建新文件時為您提供服務。

`
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")]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM