2015-04-05 113 views
0

我想从Python 2.7.3目录特定的路径中删除任何给定的文件扩展名。如果您从开始指定实际文件,则os.path.splitext返回扩展名。但我想将脚本放在一个目录中,并使用os.list.dir来查看目录。我找不到如何实际删除文件扩展名。说如果它返回'foo.png'我怎样才能永久删除“.png”扩展名?我认为os.remove(file_name_extension)可能会有所帮助,但在这种情况下似乎并不存在从目录中删除文件扩展名dir

这就是我迄今为止的测试结果。

def main(): 
    folder_path = sys.argv[1] 
    for file in os.listdir(folder_path): 
     current = os.path.join(folder_path, file) 

    print "\n\t%s" % file 

因此,这是工作正常打印屏幕文件及其扩展名在指定的目录。 我怎么能够然后操纵文件的扩展名永久删除它?

感谢

回答

0

我能够得到我想要的结果,下面是一些代码,为我的私人项目做了 工作。虽然这可能是可怕的,但它确实是从迂回的方式发生的。

if extension == ".png": 

    folder_path_length = len(folder_path)+1 
    extension = len(file)-4 + folder_path_length 
    filename = file[:extension] 

    os.rename(current, current[:extension]) 

    extension = len(file)-4 
    truncated_filename = file[:extension] 

    print "\n\t%s \n\tnow renamed to: %s" % (filename, truncated_filename) 

    files_renamed_count +=1 
0

如果你想要的文件的路径和名称不带扩展名,那么你可以简单地使用os.path.splitext(current)[0]到例如转path/to/foobar.txt分成path/to/foobar。如果您只是想的名称,而不是完整的路径(不包括扩展名),你可以使用os.path.basename

os.path.splitext(os.path.basename(current))[0] 

path/to/foobar.txt逼到foobar