2014-12-02 60 views
1

這個想法很簡單:有一個包含2個或更多文件* .txt的目錄。我的腳本應該查看目錄並獲取文件名以便通過網絡複製它們(如果存在的話)。 作爲一個Python新手,我面臨着目前無法解決的問題。 我的代碼:Python:需要將選定的文件名添加到數組中

files = os.listdir('c:\\Python34\\'); 
for f in files: 
    if f.endswith(".txt"): 
    print(f) 

此示例返回3個文件:

LICENSE.txt 
NEWS.txt 
README.txt 

現在我需要使用每一個文件名,以做一個SCP。問題是,當我嘗試獲得與第一個文件名:

print(f[0]) 

我從每個列表中的文件接收只是第一個字母:

L 
N 
R 

如何文件名添加到一個數組爲了稍後將它們用作數組元素?

回答

0

如果您想要一個list的匹配文件名稱,然後代替使用os.listdir和篩選,使用glob.glob與適當的模式。

import glob 
files = glob.glob('C:\\python34\\*.txt') 

然後你就可以訪問files[0]等等

+0

謝謝 - 這就像一個魅力!乾杯! – 2014-12-02 22:08:57

0

文件數組是files。在循環中,f是單個文件名(字符串),所以f[x]獲得文件名的第x個字符。做files[0]而不是f[0]

+0

嗨,結果如下:'DLLs DLLs DLLs' – 2014-12-02 22:07:49

1

您也可以嘗試使用extend方法。所以你說:

x = [] 
for f in files: 
    if f endswith(".txt"): 
      x.extend([f]) 

所以這將是「加入」的列表,其中f是在文件的結尾。

相關問題