Replacing Filename characters with python

前端 未结 4 1069
借酒劲吻你
借酒劲吻你 2021-02-06 02:43

I have some code which adds the word \"_manual\" onto the end of a load of filenames.. I need to change the script so that it deletes the last two letters of the filename (ES)

相关标签:
4条回答
  • 2021-02-06 03:09

    For a more generalized take on hughdbrown's answer. This code can be used to remove any particular character or set of characters.

    import os
    
    paths = (os.path.join(root, filename)
            for root, _, filenames in os.walk('C:\FolderName')
            for filename in filenames)
    
    for path in paths:
        # the '#' in the example below will be replaced by the '-' in the filenames in the directory
        newname = path.replace('#', '-')
        if newname != path:
            os.rename(path, newname)
    
    0 讨论(0)
  • 2021-02-06 03:09

    you could do:

    for filename in filenames:
        print(filename) #should display AC-5400ES.txt
        filename = filename.replace("ES.txt","ES_manual.txt")
        print(filename) #should display AC-5400ES_manual.txt
        fullpath = os.path.join(root, filename)
        os.rename(fullpath, filename)
    
    0 讨论(0)
  • 2021-02-06 03:16

    Try this:

    import os
    pathiter = (os.path.join(root, filename)
        for root, _, filenames in os.walk(folder)
        for filename in filenames
    )
    for path in pathiter:
        newname =  path.replace('ES.txt', '_ES_manual.txt')
        if newname != path:
            os.rename(path,newname)
    
    0 讨论(0)
  • 2021-02-06 03:24
    for root, dirs, filenames in os.walk(folder):
        to_write = ['root == %s\n' % root]
    
        for filename in filenames:
            filename_zero, fileext = os.path.splitext(filename)
            newname = "%s_%s_manual%s" % (filename_zero[:-2],filename_zero[-2:],fileext)
    
            tu = (os.path.join(root, filename), os.path.join(root, newname))
    
            to_write.append('%s --> %s\n' % tu)
            os.rename(*tu)
    
        print '\n'.join(to_write)
    
    0 讨论(0)
提交回复
热议问题