2016-09-15 5 views
0

Ich habe Verzeichnis poem, die 50 Dateien enthält und ich möchte sie alle lesen.Lesen aller Datei Inhalt im Verzeichnis

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

Dieser Code liest den Dateinamen aller Dateien im Verzeichnis. Aber es scheitert an

f = open(file, 'r') 

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

'os.listdir' gibt nicht den vollständigen Pfad zu den Dateien zurück. – Sevanteri

Antwort

7

os.listdir liefert nur Dateinamen sagen, den vollständigen Pfad Sie diese Dateinamen mit dem Ordner verbinden müssen, um bekommen, die Sie gerade lesen:

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

Sie suchen Datei im aktuellen Join-Dateipfad mit Verzeichnisordner.

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() 
Verwandte Themen