【发布时间】:2017-10-15 14:10:07
【问题描述】:
我有一个包含 10,000 张图像的目录。它们被标记为 1.png、2.png 等。我有一个 CSV 文件,其中包含 10,000 个标签,如青蛙、卡车等。如何循环遍历所有文件以从 CSV 添加标签? 1.png 变为 'frog.1.png' 假设青蛙是 csv 中的标签 1。
这是我迄今为止尝试过的:
import os, sys, fileinput
import pandas as pd
#read csv labels
labels = pd.read_csv('trainLabels.csv',sep=',',header=0,usecols=[1])
#sort files in directory numerically
fnames = sorted([fname for fname in os.listdir(data_dir)
if fname.endswith('.png')], key=lambda f: int(f.rsplit(os.path.extsep, 1)
[0].rsplit(None,1)[-1]))
#Now that order of labels and files match, rename all files using common counter, i
i = 0
for fname in os.listdir(data_dir):
os.rename(fnames[i],labels[i]+'.'+fnames[i])
i = i+1
os.rename 不适用于系列,我无法找到适应不同数据类型的约定。
【问题讨论】:
-
"
os.rename不适用于系列"。不知道这意味着什么。 -
对不起,我得到的错误类型是:TypeError: 'NoneType' object is not subscriptable
-
None是哪个值?
标签: python loops csv directory