Найти - Пользователи
Полная версия: Соединить 2 файла
Начало » Python для новичков » Соединить 2 файла
1
splo_0it
Есть 2 файла формата:
Первый файл:
8.8.8.8 ADMIN:389e017c900500004be43a4248574586bca03028474e 67604149b9d59fe7f1f549255b53fd64000000000000000000 00000000000000140541444d494e:002e6a730568e3738f152 09e5969ac917c96da09
8.8.4.4 root:6b24d2a1f245973ygfiuergdf7978a94ab88f8fcccee1 e1aaacdb6acb9198f4b21814cac99000000000000000000000 00000000000140541444d494e:59d20866ae25d673f32ade86 18b3ca7723fbf2a5
1.1.1.1 admin:5e706c09799e00008b6a86aaab9f11edf059fadd3f8a fc0dc6b543f896b312a9a6ca5864633f234400000000000000 00000000000dfj987543hg543g0541444d494e:232305dfe9e acae40f6a7cdcb985de7246b0da9a

Второй файл:
5e706c09799e00008b6a86aaab9f11edf059fadd3f8afc0dc6 b543f896b312a9a6ca5864633f234400000000000000000000 00000dfj987543hg543g0541444d494e:232305dfe9eacae40 f6a7cdcb985de7246b0da9a:passwd
6b24d2a1f245973ygfiuergdf7978a94ab88f8fcccee1e1aaa cdb6acb9198f4b21814cac9900000000000000000000000000 000000140541444d494e:59d20866ae25d673f32ade8618b3c a7723fbf2a5:qwerty
389e017c900500004be43a4248574586bca03028474e676041 49b9d59fe7f1f549255b53fd64000000000000000000000000 00000000140541444d494e:002e6a730568e3738f15209e596 9ac917c96da09:1qaz@WSX
Неоходимо объединить их в один файл такого вида:
8.8.8.8 ADMIN:passwd
8.8.4.4 root:qwerty
1.1.1.1 admin:1qaz@WSX
Т.е. заменить хэш паролем.
Я сделал так:
import sys

def main():
file_1 = open(sys.argv[1], 'r')
file_2 = open(sys.argv[2], 'r')
res_file = open(sys.argv[3], 'w')

for line_1, line_2 in zip(file_1.readlines(), file_2.readlines()):
ip_log = line_1.split(':')[0]
pwd = line_2.split(':')[-1]
res_line = ip_log + ':' + pwd
res_file.write(res_line)
res_file.flush()

file_1.close()
file_2.close()
res_file.close()

def usage():
print('Usage: {0} first_part.txt second_part.txt output.txt'.format(sys.argv[0]))

if __name__ == '__main__':
if len(sys.argv) != 4:
usage()
main()
Но тут нет проверки тот ли хэш заменяется, буду признателен за подсказку с реализацией.
py.user.next
Разберись со входными данными, очисти их от мусора сначала, а потом уже подавай на склеивание.

splo_0it
Я сделал так:
Файлы нужно открывать через with.
При открытии файла надо указывать кодировку через encoding.
У файлов не надо вызывать .readlines() так как они уже являются итераторами по строкам. Это равносильно zip(file_1, file_2).
Если usage() выполняется, то не надо выполнять main().
Не надо разбирать аргументы через sys.argv, все используют argparse.

В общем, тебе надо и алгоритмы учиться строить, и язык питон выучить. И это разные вещи.

Если будешь взломами заниматься, то в программировании так нулём и останешься, потому что программирование включает в себя много разных необходимых областей, которые ни к сисадминству, ни к взломам отношения не имеют. Ломать - не строить.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB