2013-08-22 48 views
0

我要導入的文件前的列表導入在Python文件的列表:如何使用的raw_input

'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)爲真,因爲位於正確的目錄

+0

'print INPUT_txt'返回什麼? –

+0

你有問題嗎?一個問題?您向我們展示了一些代碼和一些輸出,但仍不清楚您要問什麼。 – user2357112

+0

如果您的輸入中有空格,那可能是您的問題。你在逗號分割,所以文件名保留空白。 – user2357112

回答

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) 
+0

我意外地輸入'strip'而不是'split'整理帖子時。現在它是固定的。 – tdelaney

+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 

會不。