Как переименовать файл с помощью python?
Код:
paths = "/content/train2017"
midis = os.listdir(paths)
for j in midis:
for i in imgsids:
os.renames("/content/train2017/" + j, str(i) + ".jpg")
Код ошибки:
---------------------------------------------------------------------------
FileNotFoundError Traceback (most recent call last)
<ipython-input-106-b57cb06c2dff> in <module>()
14 for j in midis:
15 for i in imgsids:
---> 16 os.renames("/content/train2017/" + j, str(i) + ".jpg")
17 catIds = coco.getCatIds(catNms=['person', "car"])
18 imgIds = coco.getImgIds(catIds=catIds );
/usr/lib/python3.7/os.py in renames(old, new)
268 if head and tail and not path.exists(head):
269 makedirs(head)
--> 270 rename(old, new)
271 head, tail = path.split(old)
272 if head and tail:
FileNotFoundError: [Errno 2] No such file or directory: '/content/train2017/000000211351.jpg' -> '522418.jpg'
Проблема в том, что файл есть, но ни через "os", ни через "pathlib", мне выдают эту ошибку.
Ответы (2 шт):
Автор решения: AgentOrange
→ Ссылка
может быть это:
os.renames("/content/train2017/" + j, "/content/train2017/" + str(i) + ".jpg")
Автор решения: ganz
→ Ссылка
os.rename('file1','file2')
#or
os.system('mv file1 file2')
к вопросу об относительных и абсолютных путях: если в начале стоит c:/ (для винды) или / (просто слеш для линукс или сервера) то путь абсолютный и он считается от корня диска, если имя начинается с буквы то путь относительный и его путь начинается с текущей папки. То есть вышеприведённый код подходит для переименования файла в той же папке что и скрипт.
