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
我正在做一个小项目,该项目要求我使用 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