2017-06-10 64 views
6

tôi biết về os.path.isfile(fname), nhưng bây giờ tôi cần phải tìm kiếm nếu một tập tin tồn tại có tên FILEnTEST.txt trong đó n có thể là bất kỳ số nguyên dương (vì vậy nó có thể là FILE1TEST.txt hoặc FILE9876TEST.txt)Trong Python, Làm cách nào để kiểm tra xem tệp có tồn tại bắt đầu hoặc kết thúc bằng chuỗi con không?

Tôi đoán một giải pháp cho điều này có thể liên quan đến chuỗi con rằng tên tập tin bắt đầu/kết thúc bằng OR có liên quan đến cách nào đó gọi os.path.isfile('FILE' + n + 'TEST.txt') và thay thế n bằng bất kỳ số nào, nhưng tôi không biết cách tiếp cận một trong hai giải pháp.

Trả lời

6

Bạn sẽ cần phải viết hệ thống lọc của riêng bạn, bằng cách nhận được tất cả các tập tin trong một thư mục và sau đó kết hợp chúng thành một chuỗi regex và nhìn thấy nếu họ không kiểm tra hay không:

import re 

pattern = re.compile("FILE\d+TEST.txt") 
dir = "/test/" 
for filepath in os.listdir(dir): 
    if pattern.match(filepath): 
     #do stuff with matching file 

Tôi không phải gần một máy tính với Python được cài đặt trên nó để kiểm tra mã, nhưng nó phải là một cái gì đó dọc theo những dòng đó.

2

Bạn có thể sử dụng một biểu thức chính quy:

/FILE\d+TEST.txt/ 

Ví dụ: regexr.com.

Sau đó, bạn có thể sử dụng cụm từ thông dụng và lặp lại thông qua tất cả các tệp trong một thư mục.

import re 
import os 

filename_re = 'FILE\d+TEST.txt' 
for filename in os.listdir(directory): 
    if re.search(filename_re, filename): 
     # this file has the form FILEnTEST.txt 
     # do what you want with it now 
Các vấn đề liên quan