将特定文件从一个目录复制到另一个目录,并附加其基本目录名称

时间:2018-05-18 08:04:21

标签: python linux bash find xargs

我有  〜/ a / a1 / 1.pdf
〜/ a / a1 / 2.pdf
〜/ a / b1 / 1.pdf
〜/ a / b1 / 2.pdf
我想将所有pdf复制到名为a1_1.pdf,a1_2.pdf,b1_1.pdf,b2_2.pdf的〜/ a / c中。我该怎么做?

请原谅我的无知。我是编程和linux的新手

2 个答案:

答案 0 :(得分:0)

您提到您不熟悉Linux。下面是如何做shell命令。理解之后,如果您想在Python脚本中执行此操作,则可以通过导入os模块执行类似的操作。

首先制作目标目录:

# mkdir ~/a
# mkdir ~/a/c

然后你可以复制

# cp ~/a/a1/1.pdf ~a/c/a1_1.pdf
# cp ~/a/a1/2.pdf ~a/c/a1_2.pdf
# cp ~/a/b1/2.pdf ~a/c/b1_1.pdf
# cp ~/a/b1/2.pdf ~a/c/b2_2.pdf

答案 1 :(得分:-1)

我不知道您是否需要自动浏览文件夹,因此如果您需要它,您可以使用类似的内容来识别PDF文件:

for root, dirs, files in os.walk(~/a):
    print(root, dirs, files)

然后您可以使用os.path commands操作路径:

os.path.dirname('~/a/a1/1.pdf') -> '~/a/a1'
os.path.basename('~/a/a1/1.pdf') -> '1.pdf'

最后,您还可以使用shutil.copyfile command

shutil.copy('~/a/a1/1.pdf', '~/c/a1_1.pdf')

我让你结合并测试所有这些命令,以便熟悉python。在做最后的 shutil.copyfile 之前,不要犹豫打印或调试变量

相关问题