将文件复制到目录中

4

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

copy(open("/home/dizpers/pytest/testfile1.txt", "r"), "/home/dizpers/pytest")

但是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'

我明白为什么会出现这个问题。我使用 open() 函数打开文件。我认为我也应该像这样打开一个目录。我该怎么做呢?

提前感谢!

2个回答

5
shutil.copy ("somefile.txt","otherfile.txt")

5

shutil.copy需要两个路径作为输入参数,而不是一个文件对象和一个路径。你应该只指定路径而不是创建一个文件对象作为第一个参数。

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


1
OP想要给一个目录命名为目标位置,因此使用copyfileobj()似乎比必要的更加复杂。 - Sven Marnach
2
@Sven同意,我并不是在推荐它,只是注意到它的存在,并进行了编辑以澄清。谢谢。 - Daniel DiPaolo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接