notify when process finishes (on unix)

2007-09-30 Thread bahoo
Hi,

I'd like to write a script that sends me an email when a unix (Linux)
process ends running (or CPU drops below some threshold).  Could
anyone point me to the relevant functions, or show me an example?

Thanks
bahoo

-- 
http://mail.python.org/mailman/listinfo/python-list


subprocess.Popen fails, but os.system works

2007-04-24 Thread bahoo
Hi,

I am using Windows + Python 2.5.

This line of code fails (see error message at the end),

last_line = subprocess.Popen([D:/release/win.exe 0.5 1000 100 D:/
images/img.ppm out.ppm], stdout=subprocess.PIPE).communicate()[0]

but using os.system works:
os.system('D:/release/win.exe 0.5 1000 100 D:/images/img.ppm out.ppm')

--
C:/Python25/pythonw.exe -u  D:/run.pyw
Traceback (most recent call last):
  File D:/run.pyw, line 59, in module
process_dir(mydir)
  File D:/run.pyw, line 52, in process_dir
segmentation (dir,f)
  File D:/run.pyw, line 35, in segmentation
last_line = subprocess.Popen([D:/release/win.exe 0.5 1000 100 D:/
images/img.ppm out.ppm], stdout=subprocess.PIPE).communicate()[0]
  File C:\Python25\lib\subprocess.py, line 593, in __init__
errread, errwrite)
  File C:\Python25\lib\subprocess.py, line 793, in _execute_child
startupinfo)
WindowsError: [Error 22] The filename, directory name, or volume label
syntax is incorrect
---

Can anyone tell me why?
Thanks
bahoo

-- 
http://mail.python.org/mailman/listinfo/python-list


recursively removing files and directories

2007-04-09 Thread bahoo
Hi,

I found a message on Jan 16, 2006 regarding the same topic, except
that I wanted to remove only certain files that satisfy the format
ABC_XXX_XXX.dat, but not the other files.  Once the files are
removed, if a folder becomes empty, I want to remove the folder as
well.

The solution to the Jan 16 2006 message required many lines of python
code.  I was wondering if there is a simpler solution to my problem at
hand, perhaps by using more specialized functions?

Thanks!
bahoo

-- 
http://mail.python.org/mailman/listinfo/python-list


recursively archiving files

2007-04-09 Thread bahoo
Hi,

Can I use python to recursively compress files under subdirectories
with a certain format such as ABC_XXX_XXX.dat into a .gz or .zip
file?  I used to do it with tar on unix, but I don't like to put
commands into a single line, as it is often more prone to error.

Thanks
bahoo

-- 
http://mail.python.org/mailman/listinfo/python-list


How to have a list of lists (or array of lists)

2007-04-03 Thread bahoo
Hi,

I want to have many lists, such as list0, list1, list2, ..., each one
holding different number of items.
Is there something like
list[0]
list[1]
list[2]

so that I can iterate through this list of lists?

Thanks!
bahoo

-- 
http://mail.python.org/mailman/listinfo/python-list


how to remove multiple occurrences of a string within a list?

2007-04-03 Thread bahoo
Hi,

I have a list like ['0024', 'haha', '0024']
and as output I want ['haha']

If I
myList.remove('0024')

then only the first instance of '0024' is removed.

It seems like regular expressions is the rescue, but I couldn't find
the right tool.

Thanks!
bahoo

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: how to remove multiple occurrences of a string within a list?

2007-04-03 Thread bahoo
On Apr 3, 2:31 pm, Matimus [EMAIL PROTECTED] wrote:
 It depends on your application, but a 'set' might really be what you
 want, as opposed to a list.

  s = set([0024,haha,0024])
  s

 set([0024,haha]) s.remove(0024)
  s

 set([haha])

This sounds cool.
But is there a command I can convert the set back to a list?

-- 
http://mail.python.org/mailman/listinfo/python-list


Need help on reading line from file into list

2007-04-03 Thread bahoo
Hi,

I have a text file containing a single line of text, such as
0024

How should I read it into a list?

I tried this, but the join did not work as expected. Any
suggestions?

infile = open('my_file.txt','r')
for line in infile:
line.join(line)
my_list.extend( line )

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Need help on reading line from file into list

2007-04-03 Thread bahoo
On Apr 3, 5:06 pm, Bruno Desthuilliers
[EMAIL PROTECTED] wrote:
 bahoo a écrit :

  Hi,

  I have a text file containing a single line of text, such as
  0024

  How should I read it into a list?

 You mean ['0024'], or ['0', '0', '2', '4'] ?

  I tried this, but the join did not work as expected.

 What did you expect ?

 help(str.join)
 join(...)
  S.join(sequence) - string

  Return a string which is the concatenation of the strings in the
  sequence.  The separator between elements is S.

  Any
  suggestions?

 Honestly, the first would be to learn to ask questions, and the second
 to pay more attention to what's written in the doc. But let's try :

  infile = open('my_file.txt','r')
  for line in infile:
 line.join(line)
 my_list.extend( line )

 If you have a single line of text, you don't need to iterate.

 file has a readlines() method that will return a list of all lines. It
 also has a read() method that reads the whole content. Notice that none
 of these methods will strip newlines characters.

 Also, str has a strip() method that - by default - strip out any
 'whitespace' characters - which includes newline characters. And
 finally, passing a string as an argument to list's constructor gives you
 a list of the characters in the string.

 This is all you need to know to solve your problem - or at least the two
 possible definitions of it I mentionned above.

   open('source.txt').readlines()
 ['0024\n']
   map(str.strip, open('source.txt').readlines())
 ['0024']
   open('source.txt').read()
 '0024\n'
   list(open('source.txt').read().strip())
 ['0', '0', '2', '4']
  

Thanks, this helped a lot.
I am now using the suggested
map(str.strip, open('source.txt').readlines())

However, I am a C programmer, and I have a bit difficulty
understanding the syntax.
I don't see where the str came from, so perhaps the output of
open('source.txt').readlines() is defaulted to str?

Thanks!

-- 
http://mail.python.org/mailman/listinfo/python-list


How to check if OS is unix or pc

2007-04-03 Thread bahoo
In Matlab, there is a isunix command.
Is there something similar in python?

Thanks!
bahoo

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: how to remove multiple occurrences of a string within a list?

2007-04-03 Thread bahoo
On Apr 3, 4:21 pm, Steve Holden [EMAIL PROTECTED] wrote:
 bahoo wrote:
  On Apr 3, 2:31 pm, Matimus [EMAIL PROTECTED] wrote:
  It depends on your application, but a 'set' might really be what you
  want, as opposed to a list.

  s = set([0024,haha,0024])
  s
  set([0024,haha]) s.remove(0024)
  s
  set([haha])

  This sounds cool.
  But is there a command I can convert the set back to a list?

 That would be list(). So what you want is

 s = set([0024,haha,0024])
 s.remove(0024)
 l = list(s)

 or something like it. It seems, a priori, unlikely that you only want to
 remove items with that specific value, Is this part of some larger problem?

 regards
   Steve
 --
 Steve Holden   +44 150 684 7255  +1 800 494 3119
 Holden Web LLC/Ltd  http://www.holdenweb.com
 Skype: holdenwebhttp://del.icio.us/steve.holden
 Recent Ramblings  http://holdenweb.blogspot.com

Thanks for all the suggestions.
The larger problem is, I have a list of strings that I want to remove
from another list of strings.
So I guess what I will do is, use a for loop, and within the for loop,
do the list to set and then back to list.



-- 
http://mail.python.org/mailman/listinfo/python-list


Re: how to remove multiple occurrences of a string within a list?

2007-04-03 Thread bahoo
On Apr 3, 3:01 pm, 7stud [EMAIL PROTECTED] wrote:
 On Apr 3, 12:20 pm, bahoo [EMAIL PROTECTED] wrote:

  Hi,

  I have a list like ['0024', 'haha', '0024']
  and as output I want ['haha']

  If I
  myList.remove('0024')

  then only the first instance of '0024' is removed.

  It seems like regular expressions is the rescue, but I couldn't find
  the right tool.

  Thanks!
  bahoo

 Here are a couple of ways:

 target = 0024
 l = [0024, haha, 0024]

 
 while(True):
 try:
 l.remove(target)
 except ValueError:
 break

 print l
 -

 for index, val in enumerate(l):
 if val==target:
 del l[index]

 print l

This latter suggestion (with the for loop) seems to be buggy: if there
are multiple items in the list l equal to target, then only the
first one will be removed!

Thanks anyways.


-- 
http://mail.python.org/mailman/listinfo/python-list


Re: how to remove multiple occurrences of a string within a list?

2007-04-03 Thread bahoo
On Apr 3, 6:05 pm, Steven Bethard [EMAIL PROTECTED] wrote:
 bahoo wrote:
  The larger problem is, I have a list of strings that I want to remove
  from another list of strings.

 If you don't care about the resulting order::

   items = ['foo', 'bar', 'baz', 'bar', 'foo', 'frobble']
   to_remove = ['foo', 'bar']
   set(items) - set(to_remove)
  set(['frobble', 'baz'])

 If you do care about the resulting order::

   to_remove = set(to_remove)
   [item for item in items if item not in to_remove]
  ['baz', 'frobble']

 STeVe

This is amazing. I love python!

-- 
http://mail.python.org/mailman/listinfo/python-list


transfer data from one machine to another

2007-03-04 Thread bahoo
Hi,

I have ssh access to two linux machines (both WITHOUT root account),
and I'd like to copy data from one to another.
Since the directory structure is different, I want to specify in a
script (ideally in python, because that's what I want to learn) what
to copy over like this:

source: /home/john/folderA
destination: /home/smith/folderB

I'm a newbie on linux and ssh networking and python, so your
suggestions are welcome! A small working example would be appreciated!

bahoo

-- 
http://mail.python.org/mailman/listinfo/python-list