Python 使用略有不同的前缀更改许多文件名

Python 使用略有不同的前缀更改许多文件名,python,Python,我试图一次更改很多文件名,但遇到了一个我无法解决的问题。我有一个文件名列表,所有文件名都以“####-”开头 i、 e.“1942-testfile001.txt” 所有文件都以“yyy-”开头,四位数的年份、空格、破折号和空格。。。 我想删除所有这些“yyyy-”并保留其余的 当我使用上面的特定文本badprefix=“1942-”时,它只适用于当然以1942开头的文件 每当我尝试输入通配符(#,*,?)、badprefix=“19##-”或badprefix=“19??”时,它都不起作用

我试图一次更改很多文件名,但遇到了一个我无法解决的问题。我有一个文件名列表,所有文件名都以“####-”开头 i、 e.“1942-testfile001.txt”

所有文件都以“yyy-”开头,四位数的年份、空格、破折号和空格。。。 我想删除所有这些“yyyy-”并保留其余的

当我使用上面的特定文本badprefix=“1942-”时,它只适用于当然以1942开头的文件

每当我尝试输入通配符(#,*,?)、badprefix=“19##-”或badprefix=“19??”时,它都不起作用

我的问题是:

  • 在badprefix变量中,我将使用什么来包括以“#####-”开头的任何和所有文件

  • 我应该读什么来理解我做错了什么


  • 这段代码能解决你的问题吗

    import os, glob
    path = "/tmp/test/"
    files = "*.txt"
    dummy_year = "1234 - "
    
    for oldpath in glob.glob(path + files):
        newpath = path + oldpath[len(path)+len(dummy_year):]
        print("from: ", oldpath, "to:", newpath)
        os.rename(oldpath, newpath)
    
    它改名为

    1234 - cdef abc sdf.txt
    1946 - abcde sdf.txt
    


    你说“不行”到底是什么意思?你做了什么调试?给出一个.by's not work,我的意思是它不会更改文件名,即:badprefix=“??-”badprefix=“###-”badprefix=“*-”为什么?您似乎没有任何与所描述的通配符相关的代码。查看了
    pathlib
    glob
    ?这很不幸,但您的截止日期并没有改变规则:是的,如果它如广告所示工作,那么这将完全符合我的要求是的,它工作了。。。我确实在最后得到了一个错误,但它确实完成了所有我需要的,谢谢你。。。编辑时,错误是一个不应该存在的随机文件,并且与您使用的解决方案无关provided@FedaykinWolf:这只是从目录中以“.txt”结尾的所有文件名中删除了7个字符(无论它们是什么!)。您可以在一行(可以说太长)中执行此操作:
    \u=[os.rename(os.path.join(p,f),os.path.join(p,f[7:]),如果f.endswith('.txt')]
    我想出来了-任何7个字符,但它满足了我的需要。。。感谢您添加更多信息,这太棒了。。。现在至少我可以研究下一个我自己解决不了的问题了。。。不会太久的;)
    1234 - cdef abc sdf.txt
    1946 - abcde sdf.txt
    
    abcde sdf.txt
    cdef abc sdf.txt