2016-08-30 2 views
2

나는 그것이 많은 요청을받은 것 내가 몇 가지를 시도했지만 내가 바로 그것을 할 수 없습니다 알고에서/주제 또는 제목의파이썬 2.7에서 텍스트 파일의 데이터를 추출하고 인코딩하는 방법은 무엇입니까?

From: VENCA <[email protected]> 
Subject: =?ISO-8859-1?Q?=BFMaxi,_midi_o_mini=3F_=A1No_pases_d?= 
=?ISO-8859-1?Q?e_largo_porque_esto_te_interesa!?= 
Subject: =?UTF-8?Q?Lo_mejor_de_Gmail_est=C3=A9s_donde_est=C3=A9s?= 
From: Equipo de Gmail <[email protected]> 
Subject: =?UTF-8?Q?Tres_consejos_para_sacarle_el_m=C3=A1ximo_partido_a_Gmai?= 
From: Equipo de Gmail <[email protected]> 
Subject: =?UTF-8?Q?Organ=C3=ADzate_mejor_con_la_bandeja_de_entrada_de_Gmail?= 
From: Equipo de Gmail <[email protected]> 
From: VENCA <[email protected]> 
Subject: =?UTF-8?Q?MARINA,_comprueba_que_tus_datos_se?= 
[email protected]_a_Venca!?= 
Subject: =?UTF-8?Q?Nuevo_inicio_de_sesi=C3=B3n_en_Chrome_con_Windows?= 
From: Google <[email protected]> 
[...] 

각 쌍 :이 같은 텍스트 파일이

을/I는 형식으로 추출 할 것입니다에서 :

From: VENCA <[email protected]> - Subject: ¿Maxi, midi o mini? ¡No pases de largo porque esto te interesa! 

[...]

그래서 일부 과목은 2,3 있다는 사실을 가지고 (각 쌍을 추출해야 ... 줄 길이)는 내가 원하는 형식을주고 utf-8, iso ...에서 대상을 인코딩합니다. 무엇이든간에 그것들을 과소 평가할 수 있습니다.

고마워요!

답변

0
with open('infile.txt') as infile: 
    try: 
     while True: 
      line1 = next(infile).rstrip() 
      line2 = next(infile).rstrip() 

      if line2.startswith('From:'): 
       line1, line2 = line2, line1 

      print line1, '-', line2 

    except StopIteration: 
     pass 
+0

감사합니다. 그러나 첫 번째 주제에서는 이미 2 줄 길이이므로 "실패"합니다. 피사체에서 첫 번째 줄을주고, 두 번째 줄에서는 ...? ISO ... - Subject –

+0

@ JoelSánchezLópez 물론, 그 작은 문제를 해결하려고하는 것은 상상이됩니다! 아니면 우리가 모든 코드를 작성하기를 원했습니까? –

+0

그건 내 첫 번째 문제 였어 xD는 피사체가 1 줄 길이인지 X 줄 길이인지를 어떻게 알았는지 알지 못했고 모든 것을 함께 모으고 "iso"또는 "utf" ... 내가 충분히 자신을 설명하지 않았다면 sry. (물론 모든 코드를 기대하지는 않지만 나는 많은 것을 시도하고 있으며 어떤 것도 잘 작동하고있다. –

관련 문제