如何删除多个文件名中的所有空白?



我是Python新手。我正在将evtx日志文件转换为xml,但是,一些evtx文件的名称中有空白,当文件转换开始时,我得到一个错误。解决方案之一是手动删除所有的空白从evtx文件名,但当您处理大量文件时,这是不可能的。

我需要从多个目录中的文件名中删除所有空白。我试图通过使用.replace(" ","")删除空白来重命名文件,但是,我一直得到一个错误:

FileNotFoundError: [Errno 2] No such file or directory:

代码:

dir_path = '/home/user/evtx_logs'
for dirpath, dirnames, filenames in os.walk(dir_path):
for f in filenames:
new_filename = f.replace(" ","")
os.rename(f,new_filename)

是否有其他替代方法来重命名或忽略文件名中的空白?

尝试打印目录遍历的值。您将注意到文件名不是路径,它们只是文件的名称。当您尝试重命名文件时,需要将函数指向整个路径。像这样:

for dirpath, dirnames, filenames in os.walk(dir_path):
for f in filenames:
filepath = os.path.join(dirpath, f)
new_filename = f.replace(" ","")
new_filepath = os.path.join(dirpath, new_filename)
os.rename(filepath, new_filepath)

方案

dir_path = '/home/user/evtx_logs' 
for dirpath, dirnames, filenames in os.walk(dir_path):
for f in filenames:
new_filename = f.replace(" ","")
os.rename(os.path.join(dirpath, f), os.path.join(dirpath, new_filename))

您需要将full path提供给os.rename以进行重命名。

这里

os.path.join(dirpath, new_filename)

目录路径或目录名,不知道确切的:

os.path.join(dirnames, new_filename)

相关内容

  • 没有找到相关文章

最新更新