मैं एक प्रोग्राम बनाने की कोशिश कर रहा हूं जो निर्देशिका की .txt फाइलों की खोज करता है और किसी भी फाइल को ध्वजांकित करता है जिनकी सामग्री रेगेक्स के माध्यम से उपयोगकर्ता के इनपुट से मेल खाती है।

os.chdir(folder)
variableRegex = re.compile(variable)
for file in os.listdir(folder):
    if file.endswith('.txt'):
        filename = file
        open(file)
        open(file).read()
        file = variableRegex.search(open(file).read())
        if file.group() is None:
            print(filename + " negative.")
        else:
            print(filename + " positive.")

प्रोग्राम तब काम करता है जब file.group() None के बराबर नहीं होता है, यानी जब कोई मैच होता है। हालांकि, जब भी file.group() किसी के बराबर नहीं होता है, तो प्रोग्राम एक त्रुटि देता है, भले ही यह एक सामान्य कार्य है जिसे मैं इस प्रोग्राम में करना चाहता हूं।

Set what variable to analyze for.
al
Set what folder to analyze.
C:\regextest
regex1.txt positive.
Traceback (most recent call last):
  File "C:\Users\<myembarrassingusername>\AppData\Local\Programs\Python\Python38\automatepython\regexsearch.py", line 20, in <module>
    if file.group() is None:
AttributeError: 'NoneType' object has no attribute 'group'

निर्देशिका C:\regextest में दो .txt फ़ाइलें हैं, पहली में 'अल' है और दूसरी के अंदर एक अलग नाम है। मैं इस प्रोग्राम को त्रुटि प्राप्त किए बिना None मान को स्वीकार करने के लिए कैसे प्राप्त करूं?

पी.एस. यदि आप उत्सुक हैं, तो चर और फ़ोल्डर चर पहले इनपुट () द्वारा इनपुट किए गए थे।

1
bigphatty42 26 नवम्बर 2020, 08:43

1 उत्तर

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

यह जांचने के लिए कोड जोड़ा गया कि क्या वेरिएबल file टाइप None का है

os.chdir(folder)
variableRegex = re.compile(variable)
for file in os.listdir(folder):
    if file.endswith('.txt'):
        filename = file
        open(file)
        open(file).read()
        file = variableRegex.search(open(file).read())
        
        #Added Code Here
        NoneType=type(None)
        if(type(file)!=NoneType):
            if file.group() is None:
               print(filename + " negative.")
            else:
               print(filename + " positive.")
        else:
            print("Your Logic Here to Handle Such Cases")
1
Anant Kumar 26 नवम्बर 2020, 06:07