获取png文件名称的第一个单词和字符
Get the first word and char on the name of png file
我有一组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 个 '_'
我只想考虑从左边遇到的第一个 '_'
您的代码似乎还有一些其他问题,但此示例应该可以解决您面临的根本问题:
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
我有一组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 个 '_'
我只想考虑从左边遇到的第一个 '_'
您的代码似乎还有一些其他问题,但此示例应该可以解决您面临的根本问题:
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