(Python)删除文件名中的连续空格;留一个空格

时间:2018-12-06 18:37:54

标签: python rename filenames spaces

第一步:下划线加空格

path = os.getcwd()
filenames = os.listdir(path)
for filename in filenames:
os.rename(os.path.join(path,filename),os.path.join(path, filename.replace("_", " ")))

结果:

(还不能张贴图片。所以:)

WKN_855681(INTEL_CORP._______DL-001)_vom_03.12.2018482523.pdf

Geändert auf: (changed to)

WKN 855681(INTEL CORP.       DL-001) vom 03.12.2018482523.pdf

!这很好:D

现在我想删除(更改为)状态下的多余空间。

PS:我是个血腥的新秀,所以请不要杀死我。

ty

结果,我认为这里的文字没有显示空格..? outcome, i think the text here doesnt show the spaces..?

已解决状态: enter image description here

3 个答案:

答案 0 :(得分:1)

使用正则表达式将剩余空间替换为一个

import re
re.sub('\s{1,}',' ',file)

测试

a='WKN 855681(INTEL CORP.       DL-001) vom 03.12.2018482523.pdf'

输出

'WKN 855681(INTEL CORP. DL-001) vom 03.12.2018482523.pdf'

或者只用一个空格替换多余的_

re.sub('\_{1,}',' ',file)

测试

a='WKN_855681(INTEL_CORP._______DL-001)_vom_03.12.2018482523.pdf'
re.sub('\_{1,}',' ',a)

输出

'WKN 855681(INTEL CORP. DL-001) vom 03.12.2018482523.pdf'

答案 1 :(得分:1)

使用正则表达式:

import re
os.rename(os.path.join(path, filename), os.path.join(path, re.sub('[\s_]+', ' ', filename))

答案 2 :(得分:0)

我的2c使用globre.subos.rename

import glob, os, re
for fn in glob.glob('C:\\somedir\\*'):
    new_fn = re.sub(" ", "_")
    os.rename(fn, new_fn)