222wan

导航

python文件修改错误

在python里面同一个文件不可以连续打开两次,想要打开第二次必须先把第一次关掉,不然就会报错

改了一百遍,午后发现是没有关掉文件导致第二次写入失败

def chanangebook(bookname, type, price, content):
    '''2
    :param bookname:
    :param type:
    :param price:
    :param content:
    :return:
    '''
    f = open(fileName, 'r', newline='', encoding='utf-8')  # r代表只读的方式
    f1 = open(fileName1, 'w', newline='', encoding='utf-8')  # a代表追加方
    csv_writer = csv.writer(f1)
    for line in f.readlines():

        book_array = line.strip("\n").split(",")
        if bookname != book_array[0]:
            csv_writer.writerow([str(book_array[0]), str(book_array[1]), str(book_array[2]), str(book_array[3]),
                                 str(book_array[4]).strip("\r").strip("['").strip("']")])

        if bookname == book_array[0]:
            if type != '':
                book_array[2] = type
                csv_writer.writerow([str(book_array[0]), str(book_array[1]), str(book_array[2]), str(book_array[3]),
                                     str(book_array[4]).strip("\r").strip("['").strip("']")])

            if price != '':
                book_array[3] = price

                csv_writer.writerow([str(book_array[0]), str(book_array[1]), str(book_array[2]), str(book_array[3]),
                                     str(book_array[4]).strip("\r").strip("['").strip("']")])
            if content != '':
                book_array[4] = content

                csv_writer.writerow([str(book_array[0]), str(book_array[1]), str(book_array[2]), str(book_array[3]),
                                     str(book_array[4]).strip("\r").strip("['").strip("']")])
    f.close()
    f1.close()
    file1 = open(fileName1, "r", encoding='utf-8')
    file2 = open(fileName, "w", encoding='utf-8')

    s = file1.read()
    w = file2.write(s)

    file1.close()
    file2.close()

  

posted on 2024-06-25 21:33  角落的蘑菇  阅读(13)  评论(0编辑  收藏  举报