[英]Replacing a specific character in filename when that character is repeated
所以我有一个像这样的文件名列表:
gry_235545_y1.day
gry_234456_y1.day
gry_233356_y1.day
gry_232256_y2.day
我想将y1
的y
更改为a
。 到目前为止,我有:
for r,d,f in os.walk(path):
for n in f:
if n.endswith(('sub', 'db')):
pass
else:
if n[2][0] == 'y':
print(n.replace('y', 'a'))
但是,这改变了一切 y
文件名中的字符a
时,我只是想改变y
扩展名之前。 我的问题是如何在特定位置更改文件名中的字符?
您可以尝试将“ y”更改为“ _y”,以便专门替换_y#。
for r,d,f in os.walk(path):
for n in f:
if n.endswith(('sub', 'db')):
pass
else:
if n[2][0] == '_y':
print(n.replace('_y', 'a'))
您可以使用正则表达式。
import re
s = 'gry_235545_y1.day'
re.sub(r'_y(\d+)',r'_a\1',s)
> 'gry_235545_a1.day'
即使看起来比其他答案更长,这也是我的方法。 我认为很清楚了解发生了什么。
filenames = ["gry_235545_y1.day", "gry_235555_y1.day", "gry_235522_y1.day" ]
for file in filenames:
first_word = file.split('_')[0]
second_word = file.split('_')[1]
y1_word = "a1"
extenstion = file.split('.')[-1]
new_file_name = "".join(first_word+"_"+second_word+"_"+y1_word+"."+extenstion)
print(new_file_name)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.