python - - 如何更改列表中文件的扩展名

72 3

我有一个打开文件夹的代码,其中一些有html的扩展名。如何更改我的3个子目录中没有.html扩展名的html文件?

 
from os import walk


mypath = (" /Users/martinagalletti/Desktop/parte 2 data mining/train" )


f = []


for (dirpath,dirnames,filenames) in walk(mypath):


 f.extend(filenames)


 print(f)



时间: 原作者:

145 0

如果你在python 3.4或更高版本上,请考虑使用 pathlib

以下是解决你问题的解决方案:

 

from pathlib import Path



mypath = Path('/Users/martinagalletti/Desktop/parte 2 data mining/train')



for f in mypath.iterdir():


 if f.is_file() and not f.suffix:


 f.rename(f.with_suffix('.html'))



如果你还需要向下移动到子目录,可以使用Path.glob()方法递归地列出所有目录,像这样:

 

from pathlib import Path



mypath = Path('/Users/martinagalletti/Desktop/parte 2 data mining/train')



for dir in mypath.glob('**'):


 for f in dir.iterdir():


 if f.is_file() and not f.suffix:


 f.rename(f.with_suffix('.html'))



这里还有一个方法可以遍历所有目录,并且处理所有文件:

 

from pathlib import Path



mypath = Path('/Users/martinagalletti/Desktop/parte 2 data mining/train')



for f in mypath.glob('*'):


 if f.is_file() and not f.suffix:


 f.rename(f.with_suffix('.html'))



在两个星号中使用 Path.glob()将列出所有子目录,只有一个星号将列出该路径下的所有内容。

我希望能帮助你。

原作者:
149 2

在你的路径里调用这个函数。

 

import os


import os.path



def ensure_html_suffix(top):


 for dirpath, _, filenames in os.walk(top):


 for filename in filenames:


 if not filename.endswith('.html'):


 src_path = os.path.join(dirpath, filename)


 os.rename(src_path, f'{src_path}.html')



原作者:
105 4

首先,使用以下函数编写图像路径生成器。

 

import os



def getimagepath(root_path):


 for root,dirs,filenames in os.walk(root_path):


 for filename in filenames:


 yield(os.path.join(root,filename))



将文件夹路径输入到函数中。 然后运行for循环检查以html结尾的名称,然后用os.rename更改名称,

 

paths = getimagepath(" /Users/martinagalletti/Desktop/parte 2 data mining/train" )


for path in paths:


 if not path.endswith('.html'):


 os.rename(path,path+'.html')



原作者:
81 0
 

ff = []


for (dirpath,dirnames,filenames) in os.walk(mypath):


 for f in filenames:


 if not f.endswith(" .html" ): #check if filename does not have html ext


 new_name = os.path.join(dirpath,f+" .html" )


 os.rename(os.path.join(dirpath,f),new_name) #rename the file


 ff.append(f+" .html" )


 else:


 ff.append(f)


 print(ff)



原作者:
...