处理文件名时解析输入

Parse input when dealing with file names

当输入是路径列表时,如何解析输入?

file_in = input("Insert paths: ")  # foo.jpg "C:\Program Files\bar.jpg"
print(file_in)  # foo.jpg "C:\Program Files\bar.jpg"

我正在寻找一种干净的方法来获取列表 ['foo.jpg', 'C:\Program Files\bar.jpg'] 中的输入 foo.jpg "C:\Program Files\bar.jpg"(请注意第二条路径中的引号,因为 Program Files 中的 space =]).

是否有类似 argparseinput() 的东西?
最好的处理方法是什么?

这是你想要的:

import shlex

file_in = input("Insert paths: ")  # foo.jpg "C:\Program Files\bar.jpg"
print(shlex.split(file_in))  # foo.jpg "C:\Program Files\bar.jpg"

输出:

['foo.jpg', 'C:\Program Files\bar.jpg']