我们如何循环浏览文件夹中的所有文件名,只更改其中的一些名称



我有这样的文件。

FFIEC CDR Call Schedule RCCI 03312001.txt
FFIEC CDR Call Schedule RCCI 03312002.txt
FFIEC CDR Call Schedule RCCI 03312003.txt
etc.
FFIEC CDR Call Schedule RCCII 03312001.txt
FFIEC CDR Call Schedule RCCII 03312002.txt
FFIEC CDR Call Schedule RCCII 03312003.txt

(第2页,共2页(

我想以这个结束。

FFIEC CDR Call Schedule RCC1 03312001.txt
FFIEC CDR Call Schedule RCC1 03312002.txt
FFIEC CDR Call Schedule RCC1 03312003.txt
etc.
FFIEC CDR Call Schedule RCC2 03312001.txt
FFIEC CDR Call Schedule RCC2 03312002.txt
FFIEC CDR Call Schedule RCC2 03312003.txt

这是我正在测试的代码。

# rename certain filenames
import os
import glob
path = 'C:\Users\ryans\Downloads\'
all_files = glob.glob(os.path.join(path, "*.txt"))
# first list
before = [
'FFIEC CDR Call Schedule RCCI',
'FFIEC CDR Call Schedule RCCII',
'FFIEC CDR Call Schedule RCEI',
'FFIEC CDR Call Schedule RCEII'
]
# second list
after = [
'FFIEC CDR Call Schedule RCC1',
'FFIEC CDR Call Schedule RCC2',
'FFIEC CDR Call Schedule RCE1',
'FFIEC CDR Call Schedule RCE2'
]

for f in all_files: 
for x in before:
if x in f:
print(x)
print(f)
os.rename(x, path + after)

您可以使用zip。这是在假设您的after列表与before中的列表具有等效名称的情况下进行的。如果这个假设是不可能的,那么您就不能使用zip

import os
path = 'C:\Users\ryans\Downloads\'
# first list
before = [
'FFIEC CDR Call Schedule RCCI',
'FFIEC CDR Call Schedule RCCII',
'FFIEC CDR Call Schedule RCEI',
'FFIEC CDR Call Schedule RCEII'
]
# second list
after = [
'FFIEC CDR Call Schedule RCC1',
'FFIEC CDR Call Schedule RCC2',
'FFIEC CDR Call Schedule RCE1',
'FFIEC CDR Call Schedule RCE2'
]

for before_name, after_name in zip(before, after):
os.rename(path + before_name, path + after_name)
import os
import glob
##create int number from roman##
def roman_to_int( s):
rom_val = {'I': 1, 'V': 5, 'X': 10, 'L': 50, 'C': 100, 
'D': 500, 'M': 1000}
int_val = 0
for i in range(len(s)):
if i > 0 and rom_val[s[i]] > rom_val[s[i - 1]]:
int_val += rom_val[s[i]] - 2 * rom_val[s[i - 1]]
else:
int_val += rom_val[s[i]]
return int_val
#set the path and get the files
path = '/home/jana/Workshop/convert roman/files/'
all_files = os.listdir(path)
files_name = []
for item in all_files:
nam = item.split() 
int_val = roman_to_int(nam[4][3:])
nam[4] = nam[4][:3]+str(int_val)
files_name.append(" ".join(nam))
print(files_name)
##rename the file
for (before , after) in zip(all_files, files_name):
path_name = path+before
path_name_2 = path+after
os.rename(path_name,path_name_2)
#this will work

最新更新