2017-09-17 15 views
2

txtファイルをコピーしてしまい、jpgファイルで同じことを試みました。しかし、私は常にエンコーディングエラーが発生しています。 私のコードは次のとおりPython - jpgファイルのコピー中にエラーが発生しました

def fcopy(source, target): 
data = '' 
with open(source, encoding='Latin-1') as f: 
    data = f.read() 
    with open(target, 'w') as t: 
      t.write(data) 
fcopy("source.jpeg","dest.jpeg") 

Iはまた、エンコード= UTF8およびUTF16を使用してみました。しかし、うまくいっていませんでした:

Traceback (most recent call last): 
    File "C:/Users/Mark-II/Desktop/fileCopy.py", line 7, in <module> 
    fcopy("source.jpeg","dest.jpeg") 
    File "C:/Users/Mark-II/Desktop/fileCopy.py", line 3, in fcopy 
    with open(source, encoding='Latin-1') as f: 
FileNotFoundError: [Errno 2] No such file or directory: 'source.jpeg' 
>>> 

助けてください。

+3

あなたのソースファイルは 'source.jpeg'と呼ばれ、あなたのプログラムと同じ作業ディレクトリに置かれていますか? – Jerrybibo

+0

はい@Jerrybibo。 pythonソースとイメージファイルは同じパスにあります。 –

答えて

5

ファイルを「バイナリモード」で開こうとしてください。これは、openメソッドのドキュメントごとにテキストモードにデフォルト設定されています。それがテキストファイルで動作し、jpgイメージのようなテキスト以外のファイルで失敗する理由を説明します。バイナリモードでファイルを開くとき、エンコーディングに名前付きパラメータを使う必要はありません。

+1

ファイルの先頭に「データ」に「なし」を割り当てているのはなぜですか? – SethMMorton

+0

申し訳ありませんが、私は関数の先頭にあることを意味します。 – SethMMorton

+0

あなたは正しいセスです。それは必要ではありません。私は自分の答えを修正した。ありがとうございました! – Kyle

0

コードが機能しています。あなたの問題はファイルパスにあります。あなたが与えたイメージパスを確認してください。

+0

pythonのソースファイルとイメージファイルは、実際には同じディレクトリにありません。したがって、パスの問題はないはずです。 –

関連する問題