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 に答える