Hello, Im just answering my own email, since I just found out what my error was.
>From a regular expression howto: >http://www.amk.ca/python/howto/regex/regex.html The match() function only checks if the RE matches at the beginning of the string while search() will scan forward through the string for a match. It's important to keep this distinction in mind. Remember, match() will only report a successful match which will start at 0; if the match wouldn't start at zero, match() will not report it. That was exactly my problem. Replacing r.match(line) for r.search(line) solved it. Sorry for having bothered you prematurely. On 8/3/06, arbaro arbaro <[EMAIL PROTECTED]> wrote: > > Hello, > > I'm trying to mount an usb device from python under linux. > To do so, I read the kernel log /proc/kmsg and watch for something like: > "<6> /dev/scsi/host3/bus0/target0/lun0/:<7>usb-storage: device scan > complete" > > When I compile a regular expression like: > "r = re.compile('<\d+>\s/dev/scsi/host\d+/bus\d+/target\d+/lun\d+')" > It is found. But I don't want the <\d+>\s or '<6> ' in front of the path, so > I tried: > "r = re.compile('/dev/scsi/host\d+/bus\d+/target\d+/lun\d+')" > But this way the usb device path it is not found. > > So what i'm trying to do is: > - find the usb device path from the kernel log with the regular expression. > - Determine the start and end positions of the match (and add /disc or /part1 > to the match). > - And use that to mount the usb stick on /mnt/usb -> mount -t auto match > /mnt/usb > > If anyone can see what i'm doing wrong, please tell me, because I don't > understand it anymore. > Thanks. > > Below is the code: > > # \d+ = 1 or more digits > # \s = an empty space > > import re > > def findusbdevice(): > ''' Returns path of usb device ''' > # I did a 'cat /proc/kmsg /log/kmsg' to be able to read the kernel > message. > # Somehow I can't read /proc/kmsg directly. > kmsg = open('/log/kmsg', 'r') > r = re.compile('/dev/scsi/host\d+/bus\d+/target\d+/lun\d+') > #r = re.compile('<\d+>\s/dev/scsi/host\d+/bus\d+/target\d+/lun\d+') > for line in kmsg: > if 'usb-storage' in line and r.match(line): > print 'Success', line > _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor