我正在尝试将一些“ .jpg”的文件名更改为自定义名称,后跟数字。因此它看起来像这样: Name1.jpg; Name2.jpg; Name3.jpg
问题是它不会将当前名称更改为新名称。目录正确。
图片:https://imgur.com/a/qBgQOga
本教程的来源:https://www.geeksforgeeks.org/rename-multiple-files-using-python/
我在Windows 10 64位系统上使用Python3
我以四种不同的方式尝试了dir
。
1. os.listdir('C:/Users/Inty/Desktop/test'):
2. os.listdir('C://Users//Inty//Desktop//test'):
3. os.listdir('C:\Users\Inty\Desktop\\test'):
4. os.listdir('C:\\Users\\Inty\\Desktop\\test'):
5. os.listdir('C:/Users/Inty/Desktop/test/'):
还玩过dst = '.jpg' to '.JPG'
,但似乎没有什么区别。
# Imports
import os
# Functions
def main():
i = 0
for filename in os.listdir('C:/Users/Inty/Desktop/test'):
dst = 'Name' + str(i) + '.JPG'
src = 'C:/Users/Inty/Desktop/test' + filename
dst = 'C:/Users/Inty/Desktop/test' + dst
os.rename(src, dst)
i += 1
if __name__ == '__main__':
main()
Process finished with exit code 0
答案 0 :(得分:0)
您缺少斜线。也许您想要:
src = 'C:/Users/Inty/Desktop/test/' + filename
dst = 'C:/Users/Inty/Desktop/test/' + dst
一种更好的方法是使用os.path.join
:
src = os.path.join('C:/Users/Inty/Desktop/test', filename)
答案 1 :(得分:0)
已解决
我稍微修改了代码。主要原因是因为我在if __name__ == '__main__':
循环中有for
。
这使if
进入了函数内部。
import os
# Functions
PATH = 'C:\\Users\\Inty\\Desktop\\test'
def main():
i = 0
for filename in os.listdir(PATH):
dst = 'Name' + str(i) + '.JPG'
src = os.path.join(PATH, filename)
dst = os.path.join(PATH, dst)
os.rename(src, dst)
i += 1
if __name__ == '__main__':
main()