13

次のファイルの名前を変更するにはどうすればよいですか。

abc_2000.jpg
abc_2001.jpg
abc_2004.jpg
abc_2007.jpg

次のものに:

year_2000.jpg
year_2001.jpg
year_2004.jpg
year_2007.jpg

関連するコードは次のとおりです。

import os
import glob
files = glob.glob('abc*.jpg')
for file in files:
    os.rename(file, '{}.txt'.format(???))
4

7 に答える 7

17
import os
import glob
files = glob.glob('year*.jpg')
for file in files:
    os.rename(file, 'year_{}'.format(file.split('_')[1]))

1 行は次のように分割できます。

for file in files:
    parts = file.split('_') #[abc, 2000.jpg]
    new_name = 'year_{}'.format(parts[1]) #year_2000.jpg
    os.rename(file, new_name)
于 2013-07-19T14:14:36.770 に答える
4

私は今日似たようなことをしたので:

#!/usr/bin/env python

import os
import sys
import re

if __name__ == "__main__":
    _, indir = sys.argv

    infiles = [f for f in os.listdir(indir) if os.path.isfile(os.path.join(indir, f))]

    for infile in infiles:
        outfile = re.sub(r'abc', r'year' , infile)
        os.rename(os.path.join(indir, infile), os.path.join(indir, outfile))
于 2017-12-20T13:50:40.773 に答える