将文件从一个目录复制到另一个目录

时间:2017-04-24 23:17:17

标签: python jupyter

您好有没有人知道如何将文件从一个目录复制到另一个目录?我使用了它的“shutil.copy2”并将副本获取到指定的输出。

虽然,我的目标是能够将文件从一个目录复制到另一个目录,允许用户指定他们想要按名称复制哪些文件。而不是每次都必须输入dir路径。

思考过程:因为我指定了文件目录。以某种方式使用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)

2 个答案:

答案 0 :(得分:0)

所以有一点澄清,你试图让他们只输入一个文件名,或者你在问如何获得相对路径?

修改

好的,对于初学者来说,让你的生活变得更轻松,将来使用功能会让你的生活更轻松。其次,查看文档https://docs.python.org/3/library/functions.html#open的大量资源,您要做的大多数事情都会告诉您如何操作。您将必须使用绝对路径来保存文件,但您可以使用相对路径来打开它。

答案 1 :(得分:0)

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)