当尝试重命名特定文件夹中的文件时,程序代码将重命名 所有子文件夹也是如此。有办法解决吗?
dname = input("\nenter the path\t")
if os.path.isdir(dname):
dst = input("\nenter new file name: \t")
n = 1
for i in os.listdir(dname):
if not os.path.isdir(i):
mystr = ".txt"
src = os.path.join(dname, i)
dd = dst + str(n) + mystr
dd = os.path.join(dname, dd)
os.rename(src, dd)
n += 1
答案 0 :(得分:1)
看来这行不适合您。
os.path.isdir(i)
在检查之前尝试创建完整路径:
os.path.isdir(os.path.join(dname,i)):
答案 1 :(得分:0)
您的“ isdirectory”(os.path.isdir(i)
)检查似乎无效。
您可以使用以下代码预编译目录中存在的文件列表,
files = (file for file in os.listdir (dname)
if os.path.isfile ( os.path.join ( dname, file) ))
然后直接遍历文件,例如
for i in files:
mystr = ".txt"
src = os.path.join(dname, i)
dd = dst + str(n) + mystr
dd = os.path.join(dname, dd)
os.rename(src, dd)
n += 1
您还可以查看此答案,其中列出了可以在给定目录中列出文件的所有方式。
链接:https://stackoverflow.com/a/14176179/10164003
谢谢