[英]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
獲取總文件 sum
和str.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.