Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:重命名多个以“开始”开头的文件#&引用;_Python_Directory_Subdirectory_Renaming - Fatal编程技术网

Python:重命名多个以“开始”开头的文件#&引用;

Python:重命名多个以“开始”开头的文件#&引用;,python,directory,subdirectory,renaming,Python,Directory,Subdirectory,Renaming,我想重命名目录中的多个文件,如果它们以“#”开头,例如: #222\u消息\u分割->222\u消息\u分割 #013\u消息\u拆分2->013\u消息\u拆分2 编辑:我试过这个: for filename in os.listdir(PATH): if filename.startswith("#"): os.rename(filename, filename[1:]) for filename in os.listdir(PATH): if filena

我想重命名目录中的多个文件,如果它们以“#”开头,例如:

#222\u消息\u分割->222\u消息\u分割

#013\u消息\u拆分2->013\u消息\u拆分2

编辑:我试过这个:

for filename in os.listdir(PATH):
    if filename.startswith("#"):
        os.rename(filename, filename[1:])
for filename in os.listdir(PATH):
    if filename.startswith("#"):
        org_fp = os.path.join(PATH, filename)
        new_fp = os.path.join(PATH, filename[1:])
        os.rename(org_fp, new_fp)
for root, dirs, files in os.walk(PATH):
    for file in files:
        if file.startswith("#"):
            org_fp = os.path.join(root, file)
            new_fp = os.path.join(root, file[1:])
            os.rename(org_fp, new_fp)
edit2:在pstatix的帮助下,我让代码开始工作,现在也检查子目录中的“#u_________________

for root, dirs, files in os.walk(PATH):
for dir in dirs:
    if dir.startswith("#"):
        org_fp = os.path.join(root, dir)
        new_fp = os.path.join(root, dir[1:])
        os.rename(org_fp, new_fp)

虽然缩进已关闭,但已接近:

原始问题:

for filename in os.listdir(PATH):
    if filename.startswith("#"):
        os.rename(filename, filename[1:])
for filename in os.listdir(PATH):
    if filename.startswith("#"):
        org_fp = os.path.join(PATH, filename)
        new_fp = os.path.join(PATH, filename[1:])
        os.rename(org_fp, new_fp)
for root, dirs, files in os.walk(PATH):
    for file in files:
        if file.startswith("#"):
            org_fp = os.path.join(root, file)
            new_fp = os.path.join(root, file[1:])
            os.rename(org_fp, new_fp)
os.listdir()
不返回完整路径,即使
path
是完整路径;只列出基本名称。因此,您必须为
os.rename()
提供完整的路径才能正常工作;使用
os.path.join()
完成

评论请求更新:

for filename in os.listdir(PATH):
    if filename.startswith("#"):
        os.rename(filename, filename[1:])
for filename in os.listdir(PATH):
    if filename.startswith("#"):
        org_fp = os.path.join(PATH, filename)
        new_fp = os.path.join(PATH, filename[1:])
        os.rename(org_fp, new_fp)
for root, dirs, files in os.walk(PATH):
    for file in files:
        if file.startswith("#"):
            org_fp = os.path.join(root, file)
            new_fp = os.path.join(root, file[1:])
            os.rename(org_fp, new_fp)

请查看和以获取信息。

虽然缩进已关闭,但您已接近:

原始问题:

for filename in os.listdir(PATH):
    if filename.startswith("#"):
        os.rename(filename, filename[1:])
for filename in os.listdir(PATH):
    if filename.startswith("#"):
        org_fp = os.path.join(PATH, filename)
        new_fp = os.path.join(PATH, filename[1:])
        os.rename(org_fp, new_fp)
for root, dirs, files in os.walk(PATH):
    for file in files:
        if file.startswith("#"):
            org_fp = os.path.join(root, file)
            new_fp = os.path.join(root, file[1:])
            os.rename(org_fp, new_fp)
os.listdir()
不返回完整路径,即使
path
是完整路径;只列出基本名称。因此,您必须为
os.rename()
提供完整的路径才能正常工作;使用
os.path.join()
完成

评论请求更新:

for filename in os.listdir(PATH):
    if filename.startswith("#"):
        os.rename(filename, filename[1:])
for filename in os.listdir(PATH):
    if filename.startswith("#"):
        org_fp = os.path.join(PATH, filename)
        new_fp = os.path.join(PATH, filename[1:])
        os.rename(org_fp, new_fp)
for root, dirs, files in os.walk(PATH):
    for file in files:
        if file.startswith("#"):
            org_fp = os.path.join(root, file)
            new_fp = os.path.join(root, file[1:])
            os.rename(org_fp, new_fp)

请查看和此以获取信息。

好的。好吧,你试过什么?把你的代码添加到问答中我编辑了我的问题并添加了代码:)好的。好吧,你试过什么了?把你的代码添加到问答中我编辑了我的问题并添加了代码:)太好了,非常感谢pstatix!不幸的是,我不得不更麻烦你,因为我希望我的代码也能遍历每个子文件夹,我需要向代码中添加什么才能实现这一点?再次感谢,我将尝试更新代码并检查文档等,很高兴你帮助了我@您选择DanielSeidl作为问题的答案;你确认它有效吗?在阅读更新之前,你确认了吗?因为这是我最初问的问题的答案。到目前为止,我无法让它工作,但我仍然试图进入文档和您链接的帖子,因为我现在只编写了大约一个月的代码。我将试着理解你做了什么,以及“walk()”真正做了什么:)基本上我有一个包含文件夹的目录,其中包含子文件夹等等,在一些目录中,有以#->开始的文件/文件夹,我想删除它。@DanielSeidl
os.walk()
返回一个包含3项的元组。文档描述了它的功能,并提供了一个示例。应该有你需要的一切。当你开始工作或有更多问题时,请回来询问或选择作为答案。非常感谢pstatix!不幸的是,我不得不更麻烦你,因为我希望我的代码也能遍历每个子文件夹,我需要向代码中添加什么才能实现这一点?再次感谢,我将尝试更新代码并检查文档等,很高兴你帮助了我@您选择DanielSeidl作为问题的答案;你确认它有效吗?在阅读更新之前,你确认了吗?因为这是我最初问的问题的答案。到目前为止,我无法让它工作,但我仍然试图进入文档和您链接的帖子,因为我现在只编写了大约一个月的代码。我将试着理解你做了什么,以及“walk()”真正做了什么:)基本上我有一个包含文件夹的目录,其中包含子文件夹等等,在一些目录中,有以#->开始的文件/文件夹,我想删除它。@DanielSeidl
os.walk()
返回一个包含3项的元组。文档描述了它的功能,并提供了一个示例。应该有你需要的一切。当你让它工作或有更多的问题,回来问或选择作为答案。