我想导入一个文件列表ex:
'E:\\mytest\\test_00.txt'
'E:\\mytest\\test_01.txt'
'E:\\mytest\\test_02.txt'
INPUT_txt = raw_input("Input File(s): ")
element = map(str, INPUT_txt.split(","))
for filename in element:
print os.path.abspath(filename)
print os.path.isfile(filename)
我得到了这个结果
E:\\mytest\\test_00.txt
True
C:\PythonScript\ E:\\mytest\\test_01.txt
False
C:\PythonScript\ E:\\mytest\\test_02.txt
False
只有第一个文件(test_00.txt)为True,因为它位于正确的目录
中答案 0 :(得分:1)
试试这个:
import os
INPUT_txt = raw_input("Input File(s): ")
element = map(str, INPUT_txt.split(","))
for filename in element:
print filename
print os.path.isfile(filename)
注意您正在使用的分隔符(在您的情况下为“,”),例如输入序列:
Input file(s): ..\\file1.txt,C:\\file2.txt,results\\file3.txt
将生成正确的输出,而:
Input file(s): ..\\file1.txt, C:\\file2.txt , results\\file3.txt
不会。
答案 1 :(得分:1)
您不需要map(str, INPUT_txt.split(","))
- 元素已经是字符串。除此之外,它只是通过剥离空格来清理拆分文件名。
INPUT_txt = raw_input("Input File(s): ")
element = [ss for ss in (s.strip() for s in INPUT_txt.split(",")) if ss]
for filename in element:
print os.path.abspath(filename)
print os.path.isfile(filename)