python-3.x - 重命名文件夹中的所有文件也在重命名子文件夹
问题描述
当尝试重命名特定文件夹中的文件时,程序代码也会重命名所有子文件夹。有没有办法解决它?
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
解决方案
您的“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
谢谢
推荐阅读
- excel - 如何从合并的单元格中获取数据并将该数据填充到多行
- three.js - 为什么我只看到一半的箱子?
- android - 从Android apk中提取自适应启动器图标为svg/png?
- email - 使用 STARTTLS 从 Office365 发送电子邮件失败
- python - KERAS:来自 loglikehood 的自定义损失函数
- c# - 从 MySql-Database 表单 C# 中读取二进制文件
- r - R上的多索引时间序列面板数据滞后
- java - 正面或反面有 3 个硬币,直到所有 3 个硬币都落在正面
- python - 如何匹配数组长度和索引长度
- angular - Angular 7 虚拟滚动:如何附加到父 div 滚动条?