我是Python的新手,并且直到最近才开始尝试将其用于数据分析。我在目录中有一个按顺序获取的图像文件列表,它们的名称如下:
IMG_E5.1.tif
IMG_E5.2.tif
IMG_E5.3.tif
...
...
IMG_E5.107.tif
我想用一个下划线和一个四位数的整数替换点及其后面的数字,同时保留文件的初始编号,如下所示:
IMG_E5_0001.tif
IMG_E5_0002.tif
IMG_E5_0003.tif
...
...
IMG_E5_0107.tif
您能建议我如何完成此工作吗?或者,如果我已经不知道答案了,请联系我吗?非常感谢!
答案 0 :(得分:0)
我设法找到了一种适用于此的方法
import os
import os.path as path
from glob import glob
# Get current working directory
file_path = os.getcwd()
file_list = []
for i in range(1, 500):
# Generate file name (with wildcards) to search for
file_name = path.abspath(file_path + "/IMG*" + "." + str(i) + ".tif")
# Search for files
file = glob(file_name)
# If found, append to list
if len(file) > 1:
file_list.append(file[0])
elif len(file) == 1:
file_list.append(file[0])
for file in file_list:
# Use the "split" function to split the string at the periods
file_name, file_num, file_ext = file.split(".")
file_new = path.abspath(file_name + "_"
+ str(file_num).zfill(4)
+ "." + file_ext)
os.rename(file, file_new)
我对编码还是比较缺乏经验,因此,如果有解决此问题的更直接有效的方法,请告诉我。谢谢。