我想要仅使用Python 2.7.3从特定于目录的路径中删除任何给定的文件扩展名。如果从开始指定实际文件,os.path.splitext将返回扩展名。但我想将脚本抛出一个目录并使用os.list.dir来浏览目录。我找不到如何实际删除文件扩展名。如果它返回' foo.png'我怎么能删除" .png"永久延期?我认为os.remove(file_name_extension)可能会有所帮助,但在这种情况下它似乎不是
就测试而言,这就是我所拥有的。
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 :(得分:1)
如果您想要没有扩展名的文件的路径和名称,那么您只需使用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
转换为{{1}}。
答案 1 :(得分: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