4

用红宝石我可以

File.open('yyy.mp4', 'w') { |f| f.write(File.read('xxx.mp4')}

我可以使用 Python 做到这一点吗?

4

3 回答 3

18

你当然可以:

with open('yyy.mp4', 'wb') as f:
    f.write(open('xxx.mp4', 'rb').read())

请注意那里的二进制模式标志 ( b),因为您正在复制mp4内容,所以您不希望 python 为您重新解释换行符。

如果很大,那将占用大量内存xxx.mp4。查看该shutil.copyfile函数以获得更节省内存的选项:

import shutil

shutil.copyfile('xxx.mp4', 'yyy.mp4') 
于 2012-09-14T13:58:01.810 回答
2

Python 不是要编写丑陋的单行代码。

检查 shutil 模块的文档 - 特别是 copyfile() 方法。

http://docs.python.org/library/shutil.html

于 2012-09-14T13:57:55.367 回答
0

您想要复制文件,不要手动读取然后写入字节,使用文件复制功能,在这种简单的情况下,出于多种原因,这些功能通常更好更高效。

如果你想要一个真正的单行,你可以用分号替换换行符:

import shutil; shutil.copyfile("xxx.mp4","yyy.mp4")

避免这种情况!我这样做一次是为了加速一个与 Python 完全无关的极其具体的案例,但是通过我的python -c "Put ️ code here"命令行中存在换行符以及Meson处理它的方式。

于 2021-11-19T05:13:16.677 回答