Python - 复制jpg文件时出错

Ris*_*ati 2 python encoding jpeg copy

我完成了复制txt文件并试图用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")
Run Code Online (Sandbox Code Playgroud)

我也尝试过使用encoding = 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'
>>> 
Run Code Online (Sandbox Code Playgroud)

请帮忙.

Kyl*_*yle 5

尝试以"二进制模式"打开文件.根据open方法的文档,这默认为文本模式.这解释了为什么它适用于文本文件,并在非文本文件(如jpg图像)上失败.在二进制模式下打开文件时,您无需使用命名参数进行编码.

def fcopy(source, target):
    with open(source, 'rb') as f:
        data = f.read()
    with open(target, 'wb') as t:
        t.write(data)

fcopy("source.jpeg","dest.jpeg")
Run Code Online (Sandbox Code Playgroud)