
正文
python文件处理-根据csv文件内容,将对应图像拷贝到指定文件夹
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
内容涉及:文件遍历,读取csv指定列,拷贝文件,清理和创建文件
# -*- coding: utf-8 -*-
import csv
import os
import sys
import numpy as np
import copy
import shutil
import pandas as pd
from collections import Counter
from shutil import copyfile'''
原数据目录如下:
./2019-6-14/
├── 1816740
│ ├── IMG005x020.csv
│ ├── IMG027x033.JPG
│ ├── IMG029x023.csv
│ └── IMG029x023.JPG
... ...
├── 1816765
│ └── ... ...
├── 1816875
│ └── ... ...
├── 1816896
│ └── ... ...
├── 1816900
│ └── ... ...
└── 1816969
└── ... ...
...
分类脚本与/2019-6-14/在同级目录
'''data = '2019-6-23'
path = os.getcwd()
path_1 = path + '/' + data
data_N_root = path + '/' + 'data_N' + '_' + data
data_P_root = path + '/' + 'data_P' + '_' + data
if os.path.exists(data_N_root):
shutil.rmtree(data_N_root+'/')
os.mkdir(data_N_root)
if os.path.exists(data_P_root):
shutil.rmtree(data_P_root+'/')
os.mkdir(data_P_root)
print("清理文件夹")
print(data_N_root)
print(data_P_root)
list_name = os.listdir(path_1)
lossfile = []
count1 = 0
count2 = 0
for n in list_name:
path_2 = path_1 + '/' + n
list_name_1 = os.listdir(path_2)
for m in list_name_1:
temp = copy.copy(m[-3:])
temp_1 = copy.copy(m[:-3])
csv_root = path_1 + '/' + n + '/' + m if temp == 'csv':
if not os.path.exists(csv_root[:-3] + 'JPG'):
lossfile.append(csv_root)
continue
with open(csv_root,'rwb') as csvfile:
reader = csv.reader(csvfile)
column1 = [row[0]for row in reader]
column1 = column1[1:]
#print("len",len(column1))
column2 = str(np.ones((len(column1),1)))
print(column1)
print(column2)
print(csv_root)
writer = csv.writer(csvfile)
for val in column2:
writer.writerow('type',val)
print("cell type :", column1)
sign = 0
for k in column1:
if k == '' or k == '':
continue
else:
sign = 1
print("sign :", sign)
if sign == 1:
print("该FOV为阳性")
copyfile(csv_root[:-3] + 'csv',data_P_root + '/' + temp_1 + 'csv')
copyfile(csv_root[:-3] + 'JPG',data_P_root + '/' + temp_1 + 'JPG')
count1 = count1 + 1
else:
print("该FOV为阴性")
copyfile(csv_root[:-3] + 'csv',data_N_root + '/' + temp_1 + 'csv')
copyfile(csv_root[:-3] + 'JPG',data_N_root + '/' + temp_1 + 'JPG')
count2 = count2 + 1print("===============================")
if len(lossfile) == 0:
print("data classify OK")
else:
print("loss file :")
for n in lossfile:
print(n)
print("阳性FOV数量:",count1)
print("阴性FOV数量:",count2)







