所以我有一个来自glob的文件列表,这些文件的格式如下:
filename xx xxx moretxt.txt
我想做的是按如下方式重命名它们
filename.txt
前两个xx是其中之一:
[1B, 2B, 3B, 4B, 5B, 6B, 7B, 8B, 9B, 10B, 11B, 12B, 1A, 2A, 3A, 4A, 5A, 6A, 7A, 8A, 9A, 10A, 11A, 12A]
那么如何从文件名中删除“ xx xxx moretxt”并保留扩展名?
import glob, os
os.chdir("C:\\somepath")
for file in glob.glob("**/*.txt", recursive = True):
print(file)
答案 0 :(得分:2)
使用str.split
例如:
filename = "filename xx xxx moretxt.txt"
val = filename.split()
filename = "{}.{}".format(val[0], val[-1].split(".")[-1])
print(filename)
或使用re.match
例如:
import re
filename = "filename xx xxx moretxt.txt"
filename = re.match(r"(?P<filename>\w+).*\.(?P<ext>.+)", filename)
filename = "{}.{}".format(filename.group('filename'), filename.group('ext'))
print(filename)
输出:
filename.txt
答案 1 :(得分:0)
尝试此操作时,我只有一个文件名。
import re
import glob, os
os.chdir("C:\\Somepath")
for filename in glob.glob("**/*.txt", recursive = True):
filename = re.match(r"(?P<filename>\w+).*\.(?P<ext>.+)", filename)
filename = "{}.{}".format(filename.group('filename'), filename.group('ext'))
print(filename)
输出:
screw12323.txt
screw12323.txt
screw12323.txt
screw12323.txt
screw12323.txt'