首页 > 解决方案 > 错误地将一行添加到 txt 文件

问题描述

由于某种原因,当以“a”模式将字符串写入文件时,必要的(条件)字符串被添加了 125 次。虽然一个条目显然对我来说已经足够了。如果您开始以“w”模式添加,则循环将分别仅将最后检查的行添加到文件中,同时清除前一个。如何通过“a”模式修复添加?

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)

标签: python-3.xfileadd

解决方案


您在“for”循环中添加了文件附加操作。你的代码应该是这样的

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条旧记录


推荐阅读