Browse Source

Fix "ERROR: Cannot write metadata to JSON file" on Windows

Fixes #4246
totalwebcasting
Ivan Kozik 10 years ago
parent
commit
1394646a0a
1 changed files with 8 additions and 1 deletions
  1. +8
    -1
      youtube_dl/utils.py

+ 8
- 1
youtube_dl/utils.py View File

@ -71,7 +71,7 @@ def preferredencoding():
def write_json_file(obj, fn):
""" Encode obj as JSON and write it to fn, atomically """
""" Encode obj as JSON and write it to fn, atomically if possible """
fn = encodeFilename(fn)
if sys.version_info < (3, 0) and sys.platform != 'win32':
@ -108,6 +108,13 @@ def write_json_file(obj, fn):
try:
with tf:
json.dump(obj, tf)
if sys.platform == 'win32':
# Need to remove existing file on Windows, else os.rename raises
# WindowsError or FileExistsError.
try:
os.unlink(fn)
except OSError:
pass
os.rename(tf.name, fn)
except:
try:


Loading…
Cancel
Save