ich bin relativ neu in der Programmiererei und bastel zur Zeit an einem Projekt rum.
Hintergrund:
Auf einem FTP-Server werden zyklisch Ordner angelegt, die mit der Bezeichnung "BCK" beginnen. Diese lese ich wie im Programm beschrieben aus und möchte sie weiterbearbeiten. Leider komme ich mit der re-funktion überhaupt nicht klar. Möglicherweise könnt ihr mir sagen wo hier der Fehler liegt?
Code: Alles auswählen
# Importiere Libs
from ftplib import FTP
import re
#Variablen fuer Verbindung
host = '192.168.178.23'
user = 'abb'
passw = 'XYZ'
tardir = '/'
searchdef = 'BCK'
# eine neue Instanz von FTP erzeugen
ftp = FTP(host)
#Login auf Server
ftp.login(user, passw)
#Wechsle zu Verzeichnis /
ftp.cwd(tardir)
#Packe alle Ordner bzw Dateien aus tardir in einen String
units = ftp.nlst()
#Ausgabe auf Bildschirm
print(units)
#Durchsuche String nach definiertem Muster
units = re.findall(searchdef, units)
ftp.quit()
Code: Alles auswählen
Traceback
<module> C:\Users\Desktop\temperatur\module1.py 20
findall C:\Python33\lib\re.py 201
TypeError: expected string or buffer
Zur Info: Der Befehl "units = ftp.nlst()" bringt folgendes Ergebnis:
Code: Alles auswählen
['BCK0307_0529', 'ctrl.bin', 'BCK0307_0525', 'BCK0307_0528', 'BCK0307_0606', 'temp', 'BCK0307_0609', 'BCK0307_0602', 'BCK0307_0527', 'BCK0306_0524', 'BCK0307_0605', 'BCK0307_0531', 'BCK0307_0613', 'BCK0307_0604', 'BCK0307_0526', 'test', 'BCK0307_0610', 'BCK0307_0607', 'BCK0307_0601', 'BCK0307_0608', 'BCK0307_0612', 'BCK0307_0611', '66-26612N', 'BCK0307_0603', 'BCK0307_0530', 'system.dir', 'mc.cfg', 'ctrlused', '3HAC6811-2.20']