我有一个代码,可以递归地将文件夹中所有扩展名为.py的文件更改为.txt。 即:
def frm_ext_to_ext(directory, from_ext, to_ext):
"""
directory, from_ext, to_ext should be passed as strings including '.'
For example : directory = '/home/Desktop/folder/file', from_ext = '.txt' , to_ext = '.py'
"""
for foldername, subfolders, filenames in os.walk(directory):
for f in filenames :
if f.endswith('.py'):
base = os.path.splitext(f)[0]
os.rename(os.path.join(foldername, f), os.path.join(foldername, base + to_ext))
但我想更改文件名,如:
如果一个文件名是script.py
,我想把它改成每个文件扩展名的script_py.txt
,我想用另一个函数来逆转这个变化,即从script_py.txt
改成script.py
。
注意:上面的.py
只是一个例子。扩展可以是.pynb etc
另外,如果扩展名已经是.txt
,我希望它保持原样。有什么帮助吗
由于扩展名是在文件名中的点字符后添加的,因此我们可以使用file\u name.split(“.”)将文件名拆分为“.”,并将最后一个元素附加到文件名中。 例如,我的“D:\FlaskApp”目录中有以下文件
使用split附加扩展名:
这将提供:
我希望这就是你想要的
为了更安全,您应该执行一个脚本来检查是否有一个文件包含多个“.”
用法:
相关问题 更多 >
编程相关推荐