python-3.x 修改文件夹中所有文件的名称

3phpmpom  于 2023-06-25  发布在  Python
关注(0)|答案(2)|浏览(120)

我有一个文件夹,其中有许多文件命名如下:

4474_uff_E=443.36_out.pdbqt
AQbtc_uff_E=443.36_uff_E=396.28_uff_E=391.20_out.pdbqt
5770_uff_E=859.40_out.pdbqt
5770_uff_E=859.40_uff_E=859.31_out.pdbqt
Nice_uff_E=379.35_uff_E=367.83_uff_E=367.27_uff_E=367.26_out.pdbqt
Weird_and_funny_compound_uff_E=300.77_uff_E=299.90_out.pdbqt

我试图删除文件名中以uff开头的部分,并保留out.pdbqt部分。从AQbtc_uff_E=443.36_uff_E=396.28_uff_E=391.20_out.pdbqtAQbtc_out.pdbqt
我有一个类似的脚本,它将_out添加到文件名中

import sys
import glob
import re
import os
from os.path import dirname
files = glob.glob('**/*.pdbqt', recursive = True)
for file in files:
    name = os.path.splitext(file)[0]
    os.rename(name+".pdbqt", name+"_out.pdbqt")

但不知道如何修改。
感谢任何输入!

uqzxnwby

uqzxnwby1#

使用字符串.find()函数在文件名中定位子字符串“uff_”的开头。

filename = 'AQbtc_uff_E=443.36_uff_E=396.28_uff_E=391.20_out.pdbqt'
x = filename.find('uff_') # returns 6

然后创建一个新的文件名,丢弃该位置之后的原始文件名中的所有内容,并将“out.pdbqt”追加到末尾:

new_filename = filename[:x] + 'out.pdbqt'
vulvrdjw

vulvrdjw2#

感谢您的输入。
我在此基础上提出的工作脚本是:

import sys
import glob
import re
import os
from os.path import dirname
files = glob.glob('**/*.pdbqt', recursive = True)
for file in files:
    x = file.find('uff_')
    if x != -1: 
        new = file[:x] + 'out.pdbqt'
        print(new)
        os.rename(file, new)

相关问题