我有大约150个具有相同.txt扩展名的文件,但文件名只是字母数字字符串(例如7J9E45600.txt,FF5632088.txt等)。我有一个列表,其中字母数字字符串与更有意义的名称匹配。我想用有意义的名称替换这些字母数字字符串,但是想以编程方式进行。大多数现有解决方案允许以递增的数字重命名多个文件,例如,通过循环命令,但在我的情况下,所有文件名将是不同的。我想要做的一个例子如下:将7J9E45600.txt重命名为adipose.txt,将FF5632088.txt重命名为brain.txt等。最受欢迎的是使用Linux,R,Perl或Python的解决方案。
答案 0 :(得分:0)
是的,这很容易通过R中的for循环来完成。
使用一列旧名称和包含新名称的匹配列来进行数据的读取或读取。我复制了一个包含四个文件的示例。
oldnames <-c(“ / Users / foo / Documents / pictures / Test / 2020-04-21 19.59.jpg”, “ / Users / foo / Documents / pictures / Test / 2020-04-21 19.59.35.jpg”, “ / Users / foo / Documents / pictures / Test / 2020-04-21 19.58.37.jpg”, “ / Users / foo / Documents / pictures / Test / 2020-04-21 17.21.06.jpg”)
newnames <-c(“ / Users / foo / Documents / pictures / Test / 2021-04-21 19.59.59.jpg”, “ / Users / foo / Documents / pictures / Test / 2021-04-21 19.59.35.jpg”, “ / Users / foo / Documents / pictures / Test / 2021-04-21 19.58.37.jpg”, “ / Users / foo / Documents / pictures / Test / 2021-04-21 17.21.06.jpg”)
testnames_df <-data.frame(cbind(oldnames,newnames))
对于(1:4中的i){file.rename(from = testnames_df $ oldnames [i],至= testnames_df $ newnames [i])}