我有一组png图像,命名如下
slash_67_45.png
A_91_14.png
a_38_10.png
%_34_45.png
é_67_78.png
è_67_56.png
e_67_10.png
B_56_54.png
b_45_45.png
@_34_45.png
À_34_5.png
à_23_6.png
7_23_6.png
'_254.png
"_23.png
\_67.png
[_45.png
我想只检索第一个'_'
之前的单词或字符,并将其存储在csv文件的列中,如下所示
charachter_column its-image imag-without-character
slash slash_67_45.png _67_45.png
A A_91_14.png _91_14.png
a a_38_10.png _38_10.png
% %_34_45.png _34_45.png
é è_67_78.png _67_78.png
è é_67_56.png _67_56.png
e e_67_10.png _67_10.png
B B_56_54.png _56_54.png
b b_45_45.png _45_45.png
@ @_34_45.png _34_45.png
À A_34_5.png _34_5.png
à à_23_6.png _23_6.png
7 7_23_6.png _23_6.png
' '_254.png _254.png
" "_23.png _23.png
\ \_67.png _67.png
[ [_45.png _45.png
以下是我尝试过的代码:
import os
import pandas as pd
charachter_column= []
its_image=[]
image_without_character=[]
temp_df = pd.DataFrame({'charachter_column ': charachter_column , 'its_image ': its-image,
'image_without_character' : image_without_character})
temp_df.to_csv('/home/images_charac.csv')
DATA_DIR = "/home/images/"
png_files=sorted(os.listdir(DATA_DIR))
for png in png_files:
print(os.path.join(DATA_DIR,file))
file_name=file
character_column= file_name[:file_name.find("_")]
image_without_character=file_name[file_name.find("_")+1:]
temp_df = pd.DataFrame({'charachter_column ': charachter_column , 'its_image ': file_name,
'image_without_character' : image_without_character})
temp_df.to_csv('/home/images_charac.csv')
这里的问题是我有3 '_'
我想只考虑左边遇到的第一个'_'
答案 0 :(得分:1)
您的代码似乎存在其他一些问题,但此示例应解决您遇到的根本问题:
files = ['slash_67_45.png',
'A_91_14.png',
'a_38_10.png',
'%_34_45.png',
'é_67_78.png',
'è_67_56.png',
'e_67_10.png',
'B_56_54.png',
'b_45_45.png']
for png_file in files:
character, everything_else = png_file.split('_',maxsplit=1)
print(character)
出
A --- 91_14.png
a --- 38_10.png
% --- 34_45.png
é --- 67_78.png
è --- 67_56.png
e --- 67_10.png
B --- 56_54.png
b --- 45_45.png
修改
看起来你想保留'_'。在这种情况下,你可以这样做:
for png_file in files:
character, sep, everything_else = png_file.partition('_')
print(character,'---', sep + everything_else)
出
slash --- _67_45.png
A --- _91_14.png
a --- _38_10.png
% --- _34_45.png
é --- _67_78.png
è --- _67_56.png
e --- _67_10.png
B --- _56_54.png
b --- _45_45.png