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

2024-06-16 15:49:21 发布

您现在位置:Python中文网/ 问答频道 /正文

第一步:下划线到空格

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

现在我想删除处于(更改为)状态的剩余空间。你知道吗

附言:我是一个该死的菜鸟,所以请不要杀我了。你知道吗

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

解决状态: enter image description here


Tags: pathpdfos状态filenamelistdirdl空格
3条回答

使用regex将多余的空格替换为一个

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'

使用正则表达式:

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

我的2c使用^{}^{}^{}

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

相关问题 更多 >