किसी कारण से, "ए" मोड में एक फ़ाइल में एक स्ट्रिंग लिखते समय, आवश्यक (सशर्त) स्ट्रिंग को 125 बार जोड़ा जाता है। हालांकि मेरे लिए जाहिर तौर पर एक एंट्री ही काफी है। और यदि आप "w" मोड में जोड़ना शुरू करते हैं, तो, क्रमशः, लूप पिछले एक को साफ़ करते हुए हर बार फ़ाइल में केवल अंतिम चेक की गई लाइन जोड़ देगा। मैं "ए" मोड के माध्यम से जोड़ को कैसे ठीक कर सकता हूं?

workbook = open('base.txt')
print('Starting...')

count = 0
for line in workbook:
    number = (str(line)[0:11])


    with open(r"base.txt", "r") as file:
        lines = file.readlines()
    del lines[0]
    with open(r"base.txt", "w") as file:
        file.writelines(lines)

    for x in range(img.size[0]):
        for y in range(img.size[1]):
            pix = rgb.getpixel((x, y))
        if pix in color:

           with open('checkbase.txt', 'a') as filehandle:
                filehandle.write(line) #125 times add

    print(result)
1
JohnTit 24 पद 2019, 13:21

1 उत्तर

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

आपने 'के लिए' चक्र में अपनी फ़ाइल जोड़ने का कार्य जोड़ा है। आपका कोड कुछ इस तरह दिखना चाहिए

for x in range(img.size[0]):
    for y in range(img.size[1]):
        pix = rgb.getpixel((x, y))
    if pix in color:
        result = '{cyan}YEAH{endcolor}'.format(cyan='\033[96m', endcolor='\033[0m')

with open('checkbase.txt', 'a') as filehandle:
    filehandle.write(line)  # appending file should now happen only once for every line    

फ़ाइलें खोलने के लिए 'w' मोड का उपयोग करते समय, यह फ़ाइल सामग्री को हर बार फ़ाइल खोलने पर ओवरराइड करता है, इसलिए आपके पास केवल एक रिकॉर्ड था क्योंकि इसने न केवल बनाया, बल्कि 124 पुराने रिकॉर्ड भी हटा दिए

3
Alexey 24 पद 2019, 11:56