Да, это то, что вы можете сделать в Python. Я продемонстрирую с несколькими короткими фрагментами и ссылками на документацию, которые не дадут полного решения в пользу предоставления вам ресурсов, необходимых для самостоятельной сборки частей.
Во-первых, если вы хотите построчно загрузить один файл CSV и записать во второй файл, вы должны сделать это так:
>>> import csv
>>> with open('eggs.csv', newline='') as in and open('omellette.csv', 'w') as out:
... r = csv.reader(in)
... w = csv.writer(out)
... for row in r:
... print(', '.join(row)) # print unmodified
... row[0] = ipToNum(row[0])
... row[1] = ipToNum(row[1])
... print(', '.join(row)) # print modified
... w.writerow(row)
Spam, Spam, Spam, Spam, Spam, Baked Beans
Spam, Lovely Spam, Wonderful Spam
Оригинал, на котором основан этот пример, и дополнительная информация о встроенных возможностях CSV в python:
Возможно, вам потребуется внести коррективы в зависимости от точного форматирования вашего конкретного файла CSV. Теперь, чтобы преобразовать IP-адреса в числа, вы можете сделать что-то вроде следующего:
import socket, struct
def ipToNum(ip):
"convert ipv4/6 string to long integer"
return struct.unpack('>L',socket.inet_pton(ip))[0]
def numToDottedip(n):
"convert long int to ipv4/6"
return socket.inet_ntop(struct.pack('>L',n))
Этот пример адаптирован из того, что я нашел здесь:
Вам придется изменить его
Также, если вы хотите узнать больше о модулях сокетов и структур, вот документация:
Вам не нужно разбивать файл на части, поскольку объект CSV reader
будет возвращать только одну строку за раз, а не считывать весь файл сразу. Конечно, вы также, вероятно, захотите что-то сделать с этими числами, как только прочитаете их, но, поскольку вы не указали это, я вам это выясню.
Также обратите внимание, что я не пробовал ни один из этого кода. Стоит повторить здесь в форме метафоры: я пытаюсь научить вас ловить рыбу, а не просто давать вам рыбу. В ваших же интересах воспользоваться этим советом и попытаться заставить его работать самостоятельно, поскольку это будет вашим первым шагом к тому, чтобы стать программистом.