2016-09-15 91 views
0

我有目錄poem其中包含50個文件,我想將它們全部讀取。讀取目錄中的所有文件內容

for file in os.listdir("/home/ubuntu/Desktop/temp/poem"): 
    print file 
    f = open(file, 'r') 
    print f.read() 
    f.close() 

該代碼讀取目錄中所有文件的文件名。 但它未能在

f = open(file, 'r') 

IOError: [Errno 2] No such file or directory: '32' 
+0

'os.listdir'不會返回文件的完整路徑。 – Sevanteri

回答

7

os.listdir只返回文件名,讓你需要加入與你正在閱讀的文件夾中的文件名的完整路徑:

folder = "/home/ubuntu/Desktop/temp/poem" 
for file in os.listdir(folder): 
    print file 
    filepath = os.path.join(folder, file) 
    f = open(filepath, 'r') 
    print f.read() 
    f.close() 
1

您正在目錄文件夾中搜索當前加入文件路徑中的文件。

import os 

for i in os.listdir("/home/ubuntu/Desktop/temp/poem"): 
    if os.path.isfile(os.path.join("/home/ubuntu/Desktop/temp/poem",i)): 
     print os.path.join("/home/ubuntu/Desktop/temp/poem",i) 
     f=open(os.path.join("/home/ubuntu/Desktop/temp/poem",i),"r") 
     print f.readlines() 
     f.close()