2016-07-14 7 views
0

필자는 서지 데이터가있는 텍스트 파일에서 특정 문자열 요소를 추출하는 Python 함수를 코딩하려고합니다..txt 파일의 서지 데이터가 포함 된 문자열을 파이썬의 사전에 추출합니다.

shakespeare, william: macbeth. novel, second edition, cambridge, 2005 

각 라인은 \n에 의해 분리되어있다 : 파일 그런 다른 라인을 포함한다.

author : shakespeare, william 
title : macbeth 

usw. :

는 어떻게 같은 구조로이 라인을 추출 할 수 있습니다

+0

무엇을 시도 했습니까? regex 관련 문제에 대해서는 항상 [regex101.com] (http://www.regex101.com)과 같은 테스트 사이트를 사용하고 처리하려는 예제 입력을 가지고 놀았습니다. 실시간 결과는 그들이 일하는 방식에 대한 좋은 직감을 제공합니다. –

+0

지금까지 내 코드입니다 : 'import re def meta_dict() : open ("bib.txt", "rt", encoding = "utf-8") with infile, open ("bib.json"content = infile.read() 줄을 = content.splitlines ( 단일 줄에 대해 : 작성자 = re.search (r '^ [AZ], "wt", 인코딩 = "utf- ] [az] [az] [az] [az] [a-a] +, \ s [AZ] [az] ] [AZ] [AZ] + \ s [AZ] [AZ] [\] [\] [\] [ [az] + ', single) print (작성자)' – sepeko86

+0

수정 사항을 추가하여 질문 본문에 추가합니다. 그 형식으로는 읽을 수 없습니다. –

답변

1

다음과 같이 할 수 있습니다. 모든 라인에는 사전이 있습니다.

d = {} 
s = "shakespeare, william: macbeth. novel, second edition, cambridge, 2005" 
data = s.split(".")[0].split(": ") 
d["author"] = data[0] 
d["title"] = data[1] 

print d 
#Output 
{'title': 'macbeth', 'author': 'shakespeare, william'} 
+0

좋아, 지금까지는 그렇게 좋았지 만 모든 라인마다 어떻게 할 수 있습니까? 두 가지 기능을 가진 모듈을 갖고 싶습니다. 하나는 문자열을 추출하는, 내가 위의 코드로 알아 냈어. 두 번째 함수는 모든 행에 대해이를 수행해야합니다 ... – sepeko86