ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

19.07.2009, 15:51
|
|
Познающий
Регистрация: 09.05.2008
Сообщений: 67
Провел на форуме: 690048
Репутация:
13
|
|
Нужен несложный парсер.
Вобщем нужно из такого вида акков:
mail@mail.ru
password
-----------------
Сделать
mail@mail.ru  assword
Кто сможет помогите,заранее благодарен.
|
|
|

19.07.2009, 15:58
|
|
Постоянный
Регистрация: 12.12.2006
Сообщений: 906
Провел на форуме: 4205500
Репутация:
930
|
|
Вид файла:
Код:
мыло1
пасс1
мыло2
пасс2
?
|
|
|

19.07.2009, 16:05
|
|
Познающий
Регистрация: 09.05.2008
Сообщений: 67
Провел на форуме: 690048
Репутация:
13
|
|
мыло1
пасс1
мыло2
пасс2
мыло3
пасс3
|
|
|

19.07.2009, 16:14
|
|
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
Провел на форуме: 6075534
Репутация:
2731
|
|
PHP код:
<?php
$i = 1;
foreach (file('mails.txt') as $line)
{
$line = trim($line);
if ($line)
{
$i++;
if (!($i % 2))
echo $line;
else
echo ';' . $line . "<br>\r\n";
}
}
?>
Без использования регулярок, прочих функций - только цикл и эхо.
|
|
|

19.07.2009, 16:26
|
|
Познающий
Регистрация: 09.05.2008
Сообщений: 67
Провел на форуме: 690048
Репутация:
13
|
|
Спасибо большое.
|
|
|

19.07.2009, 16:38
|
|
Постоянный
Регистрация: 12.12.2006
Сообщений: 906
Провел на форуме: 4205500
Репутация:
930
|
|
Я опоздал 
Хотя у mailbrush'a, по-моему, что-то не то 
added: у него все то, просто я кривой
Код:
#!/usr/bin/env python3
import sys
filename = sys.argv[1]
emails = []
passwords = []
tmp = 1
for line in open(filename):
if line.strip():
emails.append(line.strip()) if tmp % 2 == 1 else passwords.append(line.strip())
tmp += 1
for i in range(len(emails)):
temp = emails[i] + ':' + passwords[i]
print(temp, file = open("out.txt", "a"))
in.txt
Код:
lala@mail.ru
password1
coco@mail.ru
password2
kaka@mail.ru
password3
out.txt
Код:
lala@mail.ru:password1
coco@mail.ru:password2
kaka@mail.ru:password3
сделал чуть короче (
Последний раз редактировалось Fata1ex; 19.07.2009 в 16:44..
|
|
|

19.07.2009, 16:41
|
|
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
Провел на форуме: 6075534
Репутация:
2731
|
|
Fata1ex, мой работает 
added: не увидел added 
|
|
|

19.07.2009, 20:23
|
|
Постоянный
Регистрация: 06.06.2007
Сообщений: 575
Провел на форуме: 1180737
Репутация:
180
|
|
Код:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
# Водной файл берем либо из параметра при запуске скрипта, либо по дефолту input.txt
# Запис производиться в файл output.txt
try:
filename = sys.argv[1]
print "Используется файл с данными " + filename,
except IndexError:
print "Испольуется стандартный файл с данными input.txt",
filename="input.txt"
try:
f1 = open(filename, "r")
f2 = open("output.txt", "w")
except IOError:
print "Чёта я файл открыть немогу :("
exit(1)
while 1:
f2.write(f1.readline()[0:-1] + ':' + f1.readline())
print temp,
sNull = f1.readline()
if not sNull:
break
f2.close()
f1.close()
Вход
Код:
AdfsdA
222222
BsfsddfB
444444
CgjjjfggdfC
444444
Выход:
Код:
AdfsdA:222222
BsfsddfB:444444
CgjjjfggdfC:444444
Чем он лучьше скрипта написанного Fata1ex:
1.
Код:
for line in open(filename):
if line.strip():
emails.append(line.strip()) if tmp % 2 == 1 else passwords.append(line.strip())
tmp += 1
Объем используемой оперативки на прямую хависит от объема вхоного файла - это Бэд
2.
Код:
for i in range(len(emails)):
temp = emails[i] + ':' + passwords[i]
print(temp, file = open("out.txt", "a"))
Зачем столько раз открывать файл на дозапись ?
PHP незнаю, так что тут молчу.
PS. все сделано исключительно в образовательных целях, и только ради интереса
|
|
|

19.07.2009, 21:49
|
|
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
Провел на форуме: 6075534
Репутация:
2731
|
|
Ну или самый короткий вариант:
PHP код:
<?php
$i = 1;
foreach (file('mails.txt') as $line)
{
$line = trim($line);
if ($line)
{
$i++;
echo $i % 2 ? ';' . $line . "<br>\r\n" : $line;
}
}
?>
|
|
|

19.07.2009, 23:08
|
|
Постоянный
Регистрация: 12.06.2008
Сообщений: 654
Провел на форуме: 4512757
Репутация:
973
|
|
cupper, ты не прав насчет первой претензии к фаталексу, он не читает файл в оперативку, конструкция open(filename) не читает файл, а получает хэндлер на него, а когда он делат for line in filehandler то там идет итератор и построчное чтение, так что это пох  , насчет второго - это маленькие слабости py3k , там поправить -дело пары сек, нужно просто в print передавать хэндлер, но это так лирика 
И раз уж меряетесь пиписьками, то всуну и я свою кривую реализацию
Код:
#! usr/bin/env python
#-*-encoding:cp1251-*-
try:
with open("input.txt") as inpt:
with open("out.txt", "a") as out:
account = {"mail":None,
"password":None}
for line in inpt:
line = line.translate(None, "\r\n")
if not line:
out.write("{0}:{1}\n".format(account["mail"], account["password"]))
account["mail"] = None
account["password"] = None
elif not account["mail"]:
account["mail"] = line
elif not account["password"]:
account["password"] = line
except Exception, e:
print e
на входе input.txt, на выходе будет out.txt
P.S. cupper, понял что смутило в твоем коде - бесконечный цикл
Последний раз редактировалось login999; 19.07.2009 в 23:13..
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|