diff options
author | Paul Wrubel <pwrubel7@gmail.com> | 2021-08-26 21:27:20 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-08-27 07:57:20 +0530 |
commit | d75201a873a413d73f12748e5710f000e9f727da (patch) | |
tree | 6d60de6dbbf3892dc2e5d49c6c78e4e0123174fd /yt_dlp/downloader/common.py | |
parent | 691d5823d6ff72b813eb34ede8009b70bebd73da (diff) | |
download | hypervideo-pre-d75201a873a413d73f12748e5710f000e9f727da.tar.lz hypervideo-pre-d75201a873a413d73f12748e5710f000e9f727da.tar.xz hypervideo-pre-d75201a873a413d73f12748e5710f000e9f727da.zip |
Use `os.replace` where applicable (#793)
When using
```py
os.remove(encodeFilename(filename))
os.rename(encodeFilename(temp_filename), encodeFilename(filename))
```
the `os.remove` need not be atomic and so can be executed arbitrarily compared to the immediately following rename call. It is better to use `os.replace` instead
Authored by: paulwrubel
Diffstat (limited to 'yt_dlp/downloader/common.py')
-rw-r--r-- | yt_dlp/downloader/common.py | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/yt_dlp/downloader/common.py b/yt_dlp/downloader/common.py index f5f6393a6..ce914bd4a 100644 --- a/yt_dlp/downloader/common.py +++ b/yt_dlp/downloader/common.py @@ -207,12 +207,9 @@ class FileDownloader(object): if old_filename == new_filename: return try: - if self.params.get('overwrites', False): - if os.path.isfile(encodeFilename(new_filename)): - os.remove(encodeFilename(new_filename)) - os.rename(encodeFilename(old_filename), encodeFilename(new_filename)) + os.replace(old_filename, new_filename) except (IOError, OSError) as err: - self.report_error('unable to rename file: %s' % error_to_compat_str(err)) + self.report_error(f'unable to rename file: {err}') def try_utime(self, filename, last_modified_hdr): """Try to set the last-modified time of the given file.""" |