![](/img/trans.png)
[英]IsADirectoryError: [Errno 21] Is a directory: '/' while copying files from one folder to another existing folder Python
[英]Copying files from one directory to another python
您好,有人知道如何将文件从一个目录复制到另一个目录吗? 我已经使用了“ shutil.copy2”,它可以工作并将副本复制到指定的输出。
但是,我的目标是能够将文件从一个目录复制到另一个目录,从而允许用户通过名称指定要复制的文件。 不必每次都输入目录路径。
思考过程:由于我指定了文件目录。 使用raw_input用户可以通过某种方式指定要从指定目录复制的文件。 发表我的代码以供参考。 #请不要BS评论我是编码新手,只是想学习。
#----------------------------------------------------------------------------------------------------------------#
# These params will be used for specifying which template you want to copy and where to output
#----------------------------------------------------------------------------------------------------------------#
'''Load file from x directory into current working directory '''
#PullTemplate: Specify which template you want to copy, by directory path
TemplateRepo = ("/home/hadoop/BackupFolders/Munge_Stage_Templates/Templates")
user_input = raw_input("which file do you want to pull:")
#OutputTemplate: Let's you specify where you want to output the copied template.
#Originally set to your current working directory (u".")
OutputTemplate = (u".")
#----------------------------------------------------------------------------------------------------------------#
# STATIC CODE: Do not alter "Just Run!"
#----------------------------------------------------------------------------------------------------------------#
shutil.copy2(TemplateRepo, OutputTemplate)
因此,您需要使它们只是输入文件名还是在询问如何获取相对路径?
编辑
好的,这样对于初学者来说,现在和将来使您的生活变得更轻松,函数将使您的生活更加轻松。 其次,查看docs https://docs.python.org/3/library/functions.html#open优质资源,您要做的大多数事情都会告诉您如何使用。 您必须使用绝对路径保存文件,但是可以使用相对路径打开文件。
shutil.copy2()
的第一个选项应该是文件而不是目录,因此您需要从输入中添加TemplateRepo和文件名:
TemplateRepo = ("/home/hadoop/BackupFolders/Munge_Stage_Templates/Templates")
user_input = raw_input("which file do you want to pull:")
OutputTemplate = (u".")
InputFile = TemplateRepo + '/' + user_input
shutil.copy2(InputFile, OutputTemplate)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.