如何删除多个文件名中的所有空格?
How remove all whitespace in multiple filenames?
我是 Python 的新手。我正在将 evtx 日志文件转换为 xml,但是,某些 evtx 文件的名称中包含白色 space,并且在文件转换开始时出现错误。 其中一个解决方案是手动删除evtx文件名中的所有白色space,但是当你处理大量文件时这是不可能的。
我需要从多个目录中的文件名中删除所有白色space。我试图通过使用 .replace(" ","")
删除白色 space 来重命名文件,但是,我不断收到错误消息:
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)
是否有任何其他方法可以重命名或忽略文件名中的白色 space?
解决方案
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))
您需要向 os.rename
提供 full path
才能进行重命名。
这里
os.path.join(dirpath, new_filename)
dirpath 或 dirnames,不确切知道:
os.path.join(dirnames, 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)
我是 Python 的新手。我正在将 evtx 日志文件转换为 xml,但是,某些 evtx 文件的名称中包含白色 space,并且在文件转换开始时出现错误。 其中一个解决方案是手动删除evtx文件名中的所有白色space,但是当你处理大量文件时这是不可能的。
我需要从多个目录中的文件名中删除所有白色space。我试图通过使用 .replace(" ","")
删除白色 space 来重命名文件,但是,我不断收到错误消息:
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)
是否有任何其他方法可以重命名或忽略文件名中的白色 space?
解决方案
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))
您需要向 os.rename
提供 full path
才能进行重命名。
这里
os.path.join(dirpath, new_filename)
dirpath 或 dirnames,不确切知道:
os.path.join(dirnames, 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)