У меня есть несколько таких файлов:
*. Sss и * _passive.sss
Если у меня есть файл с именем blah1.sss и blah1_passive.sss, я хочу избавиться от него.из blah1.sss и переименуйте в blah1_passive.sss.Однако, если у меня нет blah1_passive.sss, я хочу записать имя файла и сохранить blah1.sss.
Я смог найти все файлы * _passive.sss, но мне хотелось бы узнать awk /Команда sed и т.д., которая может переименовать * _passive.sss в * .sss.
Редактировать: Сейчас у меня есть это, но os.rename не перезаписывает файлы, хотя мне нужно перезаписать его.
import os, fnmatch
def locate(pattern, root=os.curdir):
#ignore directories- uncomment to make ignore work
#ignored = ["0201", "0306"]
for path, dirs, files in os.walk(os.path.abspath(root)):
#for dir in ignored: # if dir in dirs: #dirs.remove(dir)
for filename in fnmatch.filter(files, pattern):
yield os.path.join(path, filename)
for filename in locate("*_passive.sss"):
#found the files that i want to rename, but os.rename() refuses to overwrite !!
newfilename=filename.rstrip("_passive.sss") + ".sss"
os.rename(filename,newfilename)