मेरे पास serial.dll नाम की एक फाइल है। इस फ़ाइल की सामग्री किसी अन्य फ़ाइल का नाम है:

a-2ED1-7156.dll

मेरे पास एक ही निर्देशिका में a-2ED1-7156.dll नामक 1 फ़ाइल भी है।

जब मैं यह जांचने की कोशिश करता हूं कि फ़ाइल serial.dll से उसका नाम पढ़कर मौजूद है या नहीं:

f = open('serial.dll', 'r')

serials = f.read()

if os.path.exists(serials):
    print("ok")
else:
    print("no")

हमेशा परिणाम "नहीं"।

लेकिन:

file = 'a-2ED1-7156.dll'

if os.path.exists(file):
    print("ok")
else:    
    print("no")

हमेशा सही परिणाम देता है।

मैं कैसे जांच सकता हूं कि फ़ाइल a-2ED1-7156.dll को serial.dll फ़ाइल से पढ़कर मौजूद है या नहीं?

Update Try: 

f = open('serial.dll', 'r')
lines = f.readline()
for line in lines:
    if os.path.exists(line):
        print('ok')
    else:
        print("no")

results error:
no
no
no
no
no
no
no
no
no
no
no
ok
no
no
no
no
0
mật khẩu không đổi 26 अक्टूबर 2020, 10:32

2 जवाब

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

आपकी समस्या यह है कि किसी फ़ाइल में पंक्तियाँ नई-पंक्ति वर्ण के साथ समाप्त हो सकती हैं। फ़ाइल नामों में आमतौर पर वह वर्ण नहीं होता... उदाहरण के लिए, अभी आप जाँच कर रहे हैं कि क्या फ़ाइल a-2ED1-7156.dll\n मौजूद है - जो नहीं है। आपको बस strip() पहले की पंक्तियों की आवश्यकता है उन्हें फाइलों के रूप में जांचना:

f = open('serial.dll')

for line in f:
    filename = line.strip()
    if os.path.exists(filename):
        print(f"{filename} exists")
    else:
        print(f"{filename} doesn't exist")
0
Tomerikoo 26 अक्टूबर 2020, 13:01

मान लें कि प्रत्येक फ़ाइल एक अलग पंक्ति में है, आप इसका उपयोग कर सकते हैं

lines = f.readlines()
for line in lines:
    if os.path.exists(line):
        print('ok')

या केवल तभी प्रिंट करें जब सभी फाइलें मौजूद हों, जो इस बात पर निर्भर करता है कि आप वास्तव में क्या चाहते हैं।

1
SergioGM 26 अक्टूबर 2020, 14:05