इसलिए, मैं अपनी निर्देशिका में सभी टेक्स्ट फ़ाइलों को आउटपुट करने का प्रयास कर रहा हूं जिसमें कई नियमित अभिव्यक्तियां शामिल हैं।

यहां एक नमूना रेगुलर एक्सप्रेशन है जो किसी फ़ाइल में फ़ोन नंबर की खोज करता है

#Search for Phone Numbers
regex2 =r'\d\d\d[-]\d\d\d[-]\d\d\d\d'

यहां सभी फाइलें प्राप्त करने के लिए मेरा कोड है, लेकिन मैं उलझन में हूं कि रेगेक्स को कहां रखा जाए।

import glob

folder_path = "C:\Temp"
file_pattern = "\*.txt"
search_string = "hello"

match_list = []

folder_contents = glob.glob(folder_path + file_pattern)

for file in folder_contents:
    print("Checking", file)
    read_file = open(file, 'rt').read()

    if search_string in read_file:
        match_list.append(file)

print("Files containing search string")
for file in match_list:
    print(file)

मेरी निर्देशिका में सभी txt फ़ाइलों को संकलित करने का एक और तरीका यहां दिया गया है:

import glob
import errno
path = '/home//*.txt' #note C:
files = glob.glob(path)
for name in files:
    with open(name) as f:
        for line in f:
            split = line.split()
            if split:
                print(line.split())

मैंने उपरोक्त में से प्रत्येक में if कथन में अपना रेगेक्स डालने का प्रयास किया लेकिन मुझे त्रुटियां देता है। कोई विचार?

0
James Davinport 21 अक्टूबर 2018, 21:00

1 उत्तर

सबसे बढ़िया उत्तर
import re

# Define your regex
regex2 = re.compile(r'\d\d\d[-]\d\d\d[-]\d\d\d\d')

# Read files...

# Check if we have matches in the file content
matches = regex2.findall(read_file)
if matches:
    match_list.append(file)
    print('file:', file)
    print('matches:', matches)
0
Vikrant Sharma 22 अक्टूबर 2018, 16:11