我有一个文件夹,由目录E:\folder
中的几个文件组成,看起来像下面这样。
-folder
-old1.jpg
-old2.jpg
-old3.jpg
-...
我想根据dataframe df
列“new_name”更改这些文件的名称。
new_name
abc1
def2
ghi3
...
我想根据修改日期将文件与dataframe匹配。换句话说,首先创建的文件应该替换为dataframe df['new_name']
的第一行。
因此,文件名“old1.jpg”应重命名为“abc1.jpg”。
我已经尝试了类似的东西,但仍然无法找出如何匹配的文件与dataframe。
import os
file_name = os.path.basename(file_path)
names_dict = dict(zip(file_name, df['new_name']))
for new_name, old_name in names_dict.items():
os.rename(old_name, new_name)
任何帮助将不胜感激!
1条答案
按热度按时间gcxthw6b1#
下面是一个可能的答案:通常建议使用pathlib进行文件操作,而不是直接使用
os
这个最小的解决方案假设
df['new_name']
已经按照修改的时间升序排序。你可能应该添加检查df['name']
和files
应该是相同的长度。现在如果大小不匹配,循环将在到达两个可迭代中最小的结束时结束。还有一个最后的问题,取决于你的操作系统和/或Python版本。修改的日期应该在任何类似UNIX的操作系统上正确工作,但我认为Windows并不总是与
ST_MTIME
变量一致。所以这是你需要检查的一件事