Tôi đang cố gắng so sánh hai tệp csv (tệpA và tệpB) và loại bỏ bất kỳ hàng nào khỏi tệpA không được tìm thấy trong tệpB. Tôi muốn có thể thực hiện điều này mà không cần tạo tệp thứ ba. Tôi nghĩ rằng tôi có thể làm điều này bằng cách sử dụng mô-đun nhà văn csv nhưng bây giờ tôi là thứ hai đoán bản thân mình.Cách xóa các hàng CSV trong python
Hiện nay, tôi đang sử dụng đoạn mã sau để ghi dữ liệu so sánh của tôi từ tập tin B:
removal_list = set()
with open('fileB', 'rb') as file_b:
reader1 = csv.reader(file_b)
next(reader1)
for row in reader1:
removal_list.add((row[0], row[2]))
Đây là nơi tôi bị mắc kẹt và không biết làm thế nào để xóa các hàng:
with open('fileA', 'ab') as file_a:
with open('fileB', 'rb') as file_b:
writer = csv.writer(file_a)
reader2 = csv.reader(file_b)
next(reader2)
for row in reader2:
if (row[0], row[2]) not in removal_list:
# If row was not present in file B, Delete it from file A.
#stuck here: writer.<HowDoIRemoveRow>(row)
['sqlite'] (http://docs.python.org/2/library/sqlite3.html) là một cơ sở dữ liệu dựa trên tệp phẳng và trình điều khiển cho nó được bao gồm trong các phiên bản Python hiện đại. Nó có thể là một lựa chọn tốt hơn xem xét những gì bạn đang cố gắng làm. –
Xin lỗi cho câu hỏi ngớ ngẩn nhưng điều này sẽ tạo ra một bản sao chính xác của tập tinB, phải không? –