循环浏览列表中的文件并移动指定的文件(Python)
我有这段代码,它显示了我给定文件夹中的所有.tif文件循环浏览列表中的文件并移动指定的文件(Python),python,arrays,opencv,file-io,Python,Arrays,Opencv,File Io,我有这段代码,它显示了我给定文件夹中的所有.tif文件 timestr = datetime.now().strftime('%Y%m%d-%H%M%S%f') ex_area_files = [] tif_files = glob.glob('C:\\Users\\Bob\\Desktop\\Folder\\' + str(timestr) + '\\EXTRACTED\\*.tif') ex_area_files = [tif_files] print(ex_area_files)
timestr = datetime.now().strftime('%Y%m%d-%H%M%S%f')
ex_area_files = []
tif_files = glob.glob('C:\\Users\\Bob\\Desktop\\Folder\\' + str(timestr) + '\\EXTRACTED\\*.tif')
ex_area_files = [tif_files]
print(ex_area_files)
如何将某些指定的文件移动到另一个文件夹?我的意思是,我想移动宽度*高度小于/大于某个值的所有.tif文件
我尝试的是在数组中循环,并在设置密码后移动文件。所有结果都是循环失败,阻塞了所有系统:)
接下来是
image = cv2.imread('image.jpg')
height = np.size(image, 0)
width = np.size(image, 1)
condition = (height*width) > 9600
如何将ex_area_files
(my.tif array)设置为cv2可以读取的文件目录?更重要的是,如何立即设置文件
满足条件的文件(值为320*30px的图像)应移动到另一个目录。在程序决定可以移动文件后,如何执行此操作
谢谢
提示:这是另一段代码之后的下一步:
在本例中,请查看ex_area14.png
。我想移动一系列这样的文件(但采用.tif格式)我建议使用来移动文件。要移动它们,您可以使用-我个人使用shutil.copy2()
因此,请尝试以下方法:
import shutil
import opencv
for files in ex_area_files:
if files (PLACE YOUR CONDITION HERE):
`shutil.copy('PATH_OF_file', 'PATH_OF_WHERE_TO_DROP')
编辑:
所以我个人喜欢os.walk()
,在这里我循环浏览文件,如果文件以.tif
结尾,我将使用imread
读取文件,获取高度和宽度,并检查是否满足该条件。您必须提供要将文件复制到的位置。(注意.replace()
-imread
出于某种原因,喜欢像/
这样的斜杠,而不是\
)
谢谢对舒蒂尔来说似乎还可以。。但是如何使用数组(对文件夹中满足条件的每个文件循环)作为文件的路径?不止一个。。感谢you@Link,我更新了我的代码。我没有.tif
文件,因此无法检查它是否适用于您的特定示例。需要注意的问题是,image
是否返回为None
。非常感谢。我会在几个测试,将更新这篇文章和回复。它的工作,只是复制所有的tif文件…似乎条件>9600不工作…我现在正在看它。。。编辑:if条件必须在for循环之外。如果您查看文档,应该会找到一些工具来帮助您获得可以迭代的文件列表,甚至可以找到一些工具来遍历目录。你可能想花些时间来解决这个问题。
import shutil
import opencv
import os
for root, dirs, files in os.walk(r'FOLDER HERE'):
for file in files:
if file.lower().endswith('.tif'):
image = cv2.imread(root.replace('\\', '/') + '/' +file
height = np.size(image, 0)
width = np.size(image, 1)
if height*width > 9600:
shutil.copy(root.replace('\\', '/') + '/' +file, 'PATH_OF_WHERE_TO_DROP')