将文件从多个文件夹复制到另一个文件夹

时间:2018-04-23 12:45:31

标签: python copy

我有一个名为Reports的文件夹,其中有多个文件夹ID1,ID2,ID3 ......等等。 每个文件夹都有一个json报告。现在我想将所有这些json报告复制到一个名为Input

的文件夹中
import os 
import sys
import shutil
list={} 
list=os.system("find /home/admin1/Report -name '*.json'")
print list
for i in list:
    os.system('cp i /home/admin1/Input')

这给出了错误:     TypeError:'int'对象不可迭代

1 个答案:

答案 0 :(得分:1)

这里有很多问题。

  1. 您正在重新定义Python的内置list函数,并将其定义为变量,包含空字典(甚至不是列表)。

    < / LI>
  2. 然后您丢弃该空字典并重新定义list作为os.system("find /home/admin1/Report -name '*.json'")的结果。因为os.system返回一个整数(https://docs.python.org/3/library/os.html#os.system),所以不能做你想做的事情。看起来您希望它返回结果列表。

  3. 然后您尝试使用for循环迭代该整数,这就是为您提供TypeError

  4. os.system('cp i /home/admin1/Input')(由于上述错误,您的程序永远无法访问)从字面上运行cp i /home/admin1/Input,您不会将"i"替换为变量{的值{1}}。

  5. 使用Python i(参见https://www.pythoncentral.io/how-to-traverse-a-directory-tree-in-python-guide-to-os-walk/)来自行处理目录树,而不是使用os.system运行find,而不是尝试手动解析os.walk的输出。