更改用户指定目录中的文件名

时间:2019-01-17 01:16:17

标签: python

我有一个小脚本,它从目录脚本的文件名开头开始更改字符。我想让用户输入目录以更改文件。我不确定如何实现。

#!/usr/bin/env python3

import os

place = input("Enter the directory the files are in ")
drop  = input("Enter text to remove from filename ")
add   = input("Enter text to add to filename ")

for filename in os.listdir("."):
    if filename.startswith(drop):
        os.rename(filename, add+filename[len(drop):])

1 个答案:

答案 0 :(得分:1)

来自documentation

  

os.listdir(path ='。')返回包含条目名称的列表   在路径指定的目录中。

因此,只需将"."更改为包含目录路径的字符串。

例如,在命令行中,您可以执行以下操作:

mypath = input("Type path dir: ")
for filename in os.listdir(mypath):
    ...

mypath可以是绝对路径,也可以是相对路径。

编辑

我忘了说:here os.rename()也需要文件的完整路径(如果它们位于其他目录中)。

如果mypath是完整路径,则类似的事情应该起作用:

os.rename(os.path.join(mypath, filename), os.path.join(mypath, add, filename[len(drop):]))

如果没有,则应构建完整路径。