将文件复制到目录

Dmi*_*sev 3 python python-2.7

我想shutil.copy()将文件复制到另一个目录.我尝试执行以下代码:

copy(open("/home/dizpers/pytest/testfile1.txt", "r"), "/home/dizpers/pytest")
Run Code Online (Sandbox Code Playgroud)

但python shell显示错误消息:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/shutil.py", line 116, in copy
    dst = os.path.join(dst, os.path.basename(src))
  File "/usr/lib/python2.7/posixpath.py", line 112, in basename
    i = p.rfind('/') + 1
AttributeError: 'file' object has no attribute 'rfind'
Run Code Online (Sandbox Code Playgroud)

所以,我理解为什么会出现这个问题.我用open()函数打开文件.而且我认为我也应该打开这样的目录.我怎样才能做到这一点?

提前致谢!

Jor*_*ley 5

shutil.copy ("somefile.txt","otherfile.txt")
Run Code Online (Sandbox Code Playgroud)


Dan*_*olo 5

shutil.copy 接收两个路径,而不是文件对象和路径,您应该只指定路径而不是为第一个参数创建文件对象

shutil.copyfileobj如果需要为第一个参数使用文件对象,则可以使用,但是您也必须使用文件对象作为第二个参数.

  • @Sven同意,并没有那么推荐它注意到它的存在,而是编辑澄清.谢谢 (2认同)