Python中一个目录下的多个文件名大写

Uppercase the names of multiple files in a directory in Python

我正在做一个小项目,该项目要求我使用 Python 将特定目录中的所有文件名大写“例如:输入:Brandy.jpg,输出:BRANDY.jpg”。 问题是我以前从未对多个文件做过,我所做的如下:

universe = os.listdir('parallel_universe/')
universe = [os.path.splitext(x)[0].upper() for x in universe]

但是我所做的只是将列表中的名称大写,而不是目录本身中的文件,输出如下所示:

['ADAM SANDLER','ANGELINA JULIE','ARIANA GRANDE','BEN AFFLECK','BEN STILLER','BILL GATES', 'BRAD PITT','BRITNEY SPEARS','BRUCE LEE','CAMERON DIAZ','DWAYNE JOHNSON','ELON MUSK','ELTON JOHN','JACK BLACK','JACKIE CHAN','JAMIE FOXX','JASON SEGEL', 'JASON STATHAM'] 

我在这里错过了什么?由于我在 Python 方面经验不多,如果您的回答包括对每个步骤的解释,我将非常高兴,在此先感谢您。

现在,您正在将字符串转换为大写,仅此而已。没有进行实际的重命名。为了重命名,您需要使用 os.rename

如果您用 os.rename 包装您的代码,它应该可以解决您的问题,如下所示:

[os.rename("parallel_universe/" + x, "parallel_universe/" + os.path.splitext(x)[0].upper() + os.path.splitext(x)[1]) for x in universe]

我删除了作业 universe=,因为这一行不再是 returns 列表,您将得到一堆 None 对象。

os.rename 的文档:https://docs.python.org/3/library/os.html#os.rename