아직 DICT 함축를 지원하지 않는 구형 파이썬 버전이 실행 .
writer.writerow(dict(
(key, value(email.message_from_file(open(os.path.join(MAILDIR, mail), 'r'))))
for key, value in EXTRACTS.items()
))
당신은 모든 키에 대한 전자 메일 메시지를 읽는 피하고 싶은 않습니다
Python 2.6.8 (unknown, May 22 2013, 11:58:55)
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> def main():
... writer = csv.DictWriter(open('features.csv', 'w'), list(EXTRACTS.keys()))
... for mail in os.listdir(MAILDIR):
... writer.writerow({
... key: value(email.message_from_file(open(os.path.join(MAILDIR, mail), 'r')))
... for key, value in EXTRACTS.items()
File "<stdin>", line 6
for key, value in EXTRACTS.items()
^
SyntaxError: invalid syntax
가 사전 생성자와 발전기 표정으로 라인을 교체하십시오 {key: value for ... in ...}
구문은 파이썬 2.7에서 사용할 새로운이다 그래도 EXTRACTS
의 항목 쌍;
def main():
writer = csv.DictWriter(open('features.csv', 'w'), list(EXTRACTS.keys()))
for mail in os.listdir(MAILDIR):
mail = email.message_from_file(open(os.path.join(MAILDIR, mail), 'r'))
writer.writerow(dict((key, value(mail)) for key, value in EXTRACTS.items()))
'값 (email.message_from_file (오픈 (os.path.join (MAILDIR, 메일), 'R')))'제대로 보이지 나던 : 한번 외부 루프 당 읽어 보시기 바랍니다. 너 뭐하려고? – karthikr
'추출 '이란 무엇입니까? – oleg
@karthikr : 'EXTRACTS' 사전의 값을 호출 할 수 있다면 문제가 없습니다. –