我有一个名为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'对象不可迭代
答案 0 :(得分:1)
这里有很多问题。
您正在重新定义Python的内置list
函数,并将其定义为变量,包含空字典(甚至不是列表)。
然后您丢弃该空字典并重新定义list
作为os.system("find /home/admin1/Report -name '*.json'")
的结果。因为os.system
返回一个整数(https://docs.python.org/3/library/os.html#os.system),所以不能做你想做的事情。看起来您希望它返回结果列表。
然后您尝试使用for
循环迭代该整数,这就是为您提供TypeError
。
os.system('cp i /home/admin1/Input')
(由于上述错误,您的程序永远无法访问)从字面上运行cp i /home/admin1/Input
,您不会将"i"
替换为变量{的值{1}}。
使用Python i
(参见https://www.pythoncentral.io/how-to-traverse-a-directory-tree-in-python-guide-to-os-walk/)来自行处理目录树,而不是使用os.system运行find
,而不是尝试手动解析os.walk
的输出。