【问题标题】:rename or remove question mark from file name in python从python中的文件名重命名或删除问号
【发布时间】:2018-03-09 00:53:17
【问题描述】:

我实际上是在尝试删除或重命名python中包含问号的文件名。

有没有人可以分享一些指导或经验?

我的文件是这样的:

??test.txt
?test21.txt
test??1.txt

我想要得到的结果是:

test.txt
test21.txt
test1.txt

感谢您的帮助。 阿尔

在我尝试使用以下建议的代码下方:

#!/usr/bin/python
import sys, os, glob
for iFiles in glob.glob('*.txt'):
    print (iFiles)
    os.rename(iFiles, iFiles.replace("?",''))

【问题讨论】:

  • 您似乎希望我们为您编写一些代码。虽然许多用户愿意为陷入困境的编码人员编写代码,但他们通常只有在发布者已经尝试自己解决问题时才会提供帮助。展示这项工作的一个好方法是包含您迄今为止编写的代码、示例输入(如果有的话)、预期输出以及您实际获得的输出(控制台输出、回溯等)。您提供的详细信息越多,您可能收到的答案就越多。检查FAQHow to Ask
  • os.rename(f,f.replace("?",""))
  • 我会指给你os.renamethis question.
  • 您是要删除系统上的文件或重命名系统上的文件还是只是删除?从一个字符串?

标签: python rename filenames


【解决方案1】:

这应该可以满足您的要求。

import os
import sys
import argparse

parser = argparse.ArgumentParser(description='Rename files by replacing all instances of a character from filename')
parser.add_argument('--dir', help='Target DIR containing files to rename', required=True)
parser.add_argument('--value', help='Value to search for an replace', required=True)
args = vars(parser.parse_args())


def rename(target_dir, rep_value):
    try:
        for root, dirs, files in os.walk(target_dir):
            for filename in files:
                if rep_value in filename:
                    filename_new = str(filename).replace(rep_value, '')
                    os.rename(os.path.join(root, filename), os.path.join(root, filename_new))
                    print '{} renamed to {}'.format(filename, os.path.join(root, filename_new))
    except Exception,e:
        print e


target_dir = args['dir']
rep_value = args['value']
rename(target_dir, rep_value)

使用示例:

rename.py --dir /root/Python/ --value ?

输出

?test.txt renamed to /root/Python/test.txt
?test21.txt renamed to /root/Python/test21.txt
test1?.txt renamed to /root/Python/test1.txt

【讨论】:

    猜你喜欢
    • 2013-10-08
    • 1970-01-01
    • 2017-08-18
    • 2022-06-17
    • 2019-06-24
    • 2012-07-28
    • 2015-03-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多