多行程序能正常运行,但遇上文件名有空格会出错。有没有解决文件名兼容性的模块?
程序能正常运行,但遇上文件名有空格会出错。不改程序的情况下,有没有解决文件名兼容性的模块? 可以使用 `shlex` 模块来解决文件名包含空格的问题。`shlex.quote()` 函数可以为文件名加上合适的引号,使其兼容在命令行中使用。import shlex
filename = "file name with spaces.txt"
safe_filename = shlex.quote(filename)
# 现在可以在命令行调用中安全地使用 safe_filename
这样就不用改动现有程序逻辑,只需在调用命令前处理一下文件名即可。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 FishC 发表于 2024-10-24 15:49
可以使用 `shlex` 模块来解决文件名包含空格的问题。`shlex.quote()` 函数可以为文件名加上合适的引号,使 ...
主程序调用了其它多个模块,能不能在主程序里调用某个模块 在不改变原来程序的情况下来解决所有的文件名空格问题呢? blackantt 发表于 2024-10-24 15:53
主程序调用了其它多个模块,能不能在主程序里调用某个 ...
可以试试使用 `os` 模块中的 `subprocess.list2cmdline()` 函数,这样你只需在主程序中对传递的参数进行处理,不需要修改其他模块的代码。
例如,假设你有多个模块需要文件名作为参数,可以在主程序中集中处理:
import subprocess
def safe_args(args):
return subprocess.list2cmdline(args)
# 用法示例
filename = "file name with spaces.txt"
command = ["program", filename]
safe_command = safe_args(command)
# 现在调用命令时,使用 safe_command
这样可以确保处理的文件名不受空格影响,而无需修改其他模块代码。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页:
[1]