Python:我正在尝试重命名(切掉)单个目录中文件名的最后15个字符

2024-10-04 01:29:04 发布

您现在位置:Python中文网/ 问答频道 /正文

Python:我正在尝试重命名(切掉)单个文件夹中所有文件的最后15个字符,而不切掉'mychoppingfile.py文件'. 此外,程序必须只为每个文件运行一次(我猜这将通过在处理后将输出文件移动到新目录来处理?)。这就是我所拥有的:

#!/usr/bin/python

import os
files = os.listdir('.')
for filename in files:
    os.rename(filename, filename[:-15])

Tags: 文件pyimport程序目录文件夹binos
3条回答

一种方法是使用字典:

import os
files = os.listdir('.')
seen = dict()
for filename in files:
  if len(filename) > 15 and filename != 'mychoppingfile.py':
    tofile = filename[:-15]
    if tofile not in seen:
      print filename + " -> " + filename[:-15]
      seen[tofile] = 1 

你忘了指明你面临的问题。你知道吗

无论如何,请注意,如果您的文件名短于16个字符,那么您将尝试将它们重命名为空字符串,这当然是错误的。也许这就是问题所在。你知道吗

另一件不好的事情是,你可能还重新命名脚本本身。你知道吗

exclude = ['mychoppingfile.py'] # could add more exclusions to this list
for filename in files:  # see notes below
    if not filename in exclude:
        os.rename(filename, filename[:-15])

但也有很多问题:

  • 应该使用os.walk来获取文件
  • 需要处理文件名少于16个字符的情况
  • 需要处理文件名截断导致冲突的情况(与现有文件名或此过程中的另一个冲突)

相关问题 更多 >