From ce4be3a91d5fe8f2970d00be5663a7aad12d2a6d Mon Sep 17 00:00:00 2001 From: Philipp Hagemeister Date: Mon, 17 Dec 2012 19:48:10 +0100 Subject: [PATCH] Remove some antipatterns and ensure that we always write the JSON file with UTF-8 --- youtube_dl/FileDownloader.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/youtube_dl/FileDownloader.py b/youtube_dl/FileDownloader.py index 61d3654e20..e8c62ce07a 100644 --- a/youtube_dl/FileDownloader.py +++ b/youtube_dl/FileDownloader.py @@ -4,6 +4,7 @@ from __future__ import absolute_import import math +import io import os import re import socket @@ -453,12 +454,9 @@ class FileDownloader(object): self.trouble(u'ERROR: No JSON encoder found. Update to Python 2.6+, setup a json module, or leave out --write-info-json.') return try: - infof = open(encodeFilename(infofn), 'w') - try: - json_info_dict = dict((k, info_dict[k]) for k in info_dict if not k in ['urlhandle']) + with io.open(encodeFilename(infofn), 'w', 'utf-8') as infof: + json_info_dict = dict((k, v) for k,v in info_dict.items() if not k in ['urlhandle']) json.dump(json_info_dict, infof) - finally: - infof.close() except (OSError, IOError): self.trouble(u'ERROR: Cannot write metadata to JSON file ' + infofn) return