python - 复制名称在列表中的文件
问题描述
我想将文件复制到名称在名称列表中的新目录 (good_images)
我有超过 60,000 张图像和 16,000 个名称的列表。事实上,我知道列表中的每个名称都与图像的名称相匹配。例如,图像命名为 100079.jpg,列表为 100079。我已将 .jpg 附加到列表中每个数字的末尾,但这并没有帮助。
import os
from shutil import copy2
import pandas as pd
import numpy as np
Good_File_Names_jpg = []
for i in Good_File_Names:
Good_File_Names_jpg.append('%s.jpg' % i) #add .jpg to end of list so its similar to file names
for i in (Good_File_Names):
for j in os.listdir('images_training_rev1_editing'):
if j.startswith('Good_File_Names[i]'):
os.chdir('images_training_rev1_editing')
copy2('%s' % j, 'good_images')
os.chdir('..')
print(j)
我知道循环有效,因为它需要 10 分钟才能运行,如果我用数字(比如说 100078)替换“Good_File_Names[i]”,它会成功地将 100078.jpg 复制到新目录。我认为问题出在这j.startwith
条线上。可能与变量的传递方式有关。
解决方案
问题是你有你j.startswith('Good_File_Names[i]'):
的引号,所以 Python 将它解释为一个字符串。Good_File_Names
您还已经使用变量遍历了 的值i
。替换有问题的代码j.startswith(i):
应该可以解决问题。
推荐阅读
- python - 如何从连接矩阵中绘制图像?
- javascript - 我们如何在 Angular 2+ 的模块中发送数据
- reactjs - 使用“componentDidMount()”重定向:问题(React)
- java - 我怎样才能修复我的进度并寻找滑块以适用于所有媒体?
- solidity - rinkeby etherscan 中的代币余额显示为 0
- c - gcc -O 会对链接的静态库生效吗?
- php - 在 laravel 路由文件中获取当前用户名而不从控制器传递
- javascript - 在 Javascript 中订购日历事件列表并添加月份名称
- c# - 将带有点 (.) 的 XML 标记映射到 C# 对象
- vaadin - Vaadin 12 项目中的 FabricJS