Re: how to get os.system () call to cooperate on Windows

2009-10-28 Thread David Robinow
On Wed, Oct 28, 2009 at 12:43 AM, Gabriel Genellina
gagsl-...@yahoo.com.ar wrote:
 How can one copy files on the OS level?

 The idea was just to show how to call CopyFile using ctypes, not implying
 that it's the only way to do that. Everyone knows that the One and True Way
 of copying files is using PIP.
 Yuk! With the /OP syntax. Which leads to the need for a backslash.
Bill Gates learned on the PDP-11 and it's still plaguing us today.

Anyway, thanks for the example. I'll add it to my useful Windows snippets.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: how to get os.system () call to cooperate on Windows

2009-10-27 Thread Gabriel Genellina

En Tue, 27 Oct 2009 10:55:09 -0300, TerryP bigboss1...@gmail.com
escribió:


On Oct 26, 10:00 am, Anthra Norell anthra.nor...@bluewin.ch wrote:

The function os.system
('copy file_name directory_name') turns out doesn't do anything except
flashing a DOS command window for half a second. So my question is: How
can one copy files on the OS level?


Under a Windows system the built in command, copy, is a pile of crap
and xcopy is not much fun; you need to screw with it at the command
prompt to find the exact usage.


Uh... well, not because you don't know the command syntax it becomes a
pile of crap...


The formal way to copy files on the 'OS level' is by way of a system
call. I believe under Windows NT, this would be the CopyFile family;
using that through cctypes doesn't sound like fun.


It's as simple as this:

  from ctypes import windll
CopyFile = windll.kernel32.CopyFileA
CopyFile(d:\\temp\\old.txt, d:\\temp\\new.txt, True)

--
Gabriel Genellina

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


Re: how to get os.system () call to cooperate on Windows

2009-10-27 Thread Steven D'Aprano
On Tue, 27 Oct 2009 21:48:36 -0300, Gabriel Genellina wrote:

 En Tue, 27 Oct 2009 10:55:09 -0300, TerryP bigboss1...@gmail.com
 escribió:
 
 On Oct 26, 10:00 am, Anthra Norell anthra.nor...@bluewin.ch wrote:
 The function os.system
 ('copy file_name directory_name') turns out doesn't do anything
 except flashing a DOS command window for half a second. So my question
 is: How can one copy files on the OS level?

[...]

 It's as simple as this:
 
from ctypes import windll
 CopyFile = windll.kernel32.CopyFileA
 CopyFile(d:\\temp\\old.txt, d:\\temp\\new.txt, True)



Have I missed something? What's wrong with shutil? 

shutil.copyfile(source, destination) seems to work for me, even on 
Windows.


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


Re: how to get os.system () call to cooperate on Windows

2009-10-27 Thread Gabriel Genellina
En Tue, 27 Oct 2009 23:04:47 -0300, Steven D'Aprano  
ste...@remove.this.cybersource.com.au escribió:

On Tue, 27 Oct 2009 21:48:36 -0300, Gabriel Genellina wrote:

En Tue, 27 Oct 2009 10:55:09 -0300, TerryP bigboss1...@gmail.com
escribió:

On Oct 26, 10:00 am, Anthra Norell anthra.nor...@bluewin.ch wrote:



How can one copy files on the OS level?

from ctypes import windll
CopyFile = windll.kernel32.CopyFileA
CopyFile(d:\\temp\\old.txt, d:\\temp\\new.txt, True)


Have I missed something? What's wrong with shutil?


There's nothing wrong with shutil, but CopyFile and friends have some  
additional features (correct handling of alternate data streams, progress  
callback, reduced disk fragmentation...) that some people may be  
interested in.


The idea was just to show how to call CopyFile using ctypes, not implying  
that it's the only way to do that. Everyone knows that the One and True  
Way of copying files is using PIP.


--
Gabriel Genellina

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


Re: how to get os.system () call to cooperate on Windows

2009-10-27 Thread Anthra Norell

Kushal Kumaran wrote:

On Tue, Oct 27, 2009 at 2:04 AM, Anthra Norell anthra.nor...@bluewin.ch wrote:
  

snip

No, I didn't. There's a number of modules I know by name only and shutils
was one of them. A quick peek confirmed that it is exactly what I am looking
for. Thank you very much for the advice.




Then Doug Hellmann's PyMOTW is for you. http://blog.doughellmann.com/

  


Thanks for your tip too. It doesn't directly relate to my question, but 
points to a source of welcome clarifications.


Frederic

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


Re: how to get os.system () call to cooperate on Windows

2009-10-27 Thread TerryP
On Oct 26, 10:00 am, Anthra Norell anthra.nor...@bluewin.ch wrote:
 The function os.system
 ('copy file_name directory_name') turns out doesn't do anything except
 flashing a DOS command window for half a second. So my question is: How
 can one copy files on the OS level?

Under a Windows system the built in command, copy, is a pile of crap
and xcopy is not much fun; you need to screw with it at the command
prompt to find the exact usage.

The formal way to copy files on the 'OS level' is by way of a system
call. I believe under Windows NT, this would be the CopyFile family;
using that through cctypes doesn't sound like fun.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: how to get os.system () call to cooperate on Windows

2009-10-26 Thread Diez B. Roggisch
Anthra Norell wrote:

 I have a Python program that needs to copy files around. I could read
 and write which would be inefficient and would time-stamp the copy. The
 module os has lots of operating system functions, but none that copies
 files I could make out reading the doc twice. The function os.system
 ('copy file_name directory_name') turns out doesn't do anything except
 flashing a DOS command window for half a second. So my question is: How
 can one copy files on the OS level?
This simple question would surely have been asked many times before.
 Not to impose on anyone's patience I expect it can be answered between
 two sips of coffee.
 
 Thanks very much

Did you take a look at the shutil-module?

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


Re: how to get os.system () call to cooperate on Windows

2009-10-26 Thread Anthra Norell

Diez B. Roggisch wrote:

Anthra Norell wrote:

  

I have a Python program that needs to copy files around. I could read
and write which would be inefficient and would time-stamp the copy. The
module os has lots of operating system functions, but none that copies
files I could make out reading the doc twice. The function os.system
('copy file_name directory_name') turns out doesn't do anything except
flashing a DOS command window for half a second. So my question is: How
can one copy files on the OS level?
   This simple question would surely have been asked many times before.
Not to impose on anyone's patience I expect it can be answered between
two sips of coffee.

Thanks very much



Did you take a look at the shutil-module?

Diez
  
No, I didn't. There's a number of modules I know by name only and 
shutils was one of them. A quick peek confirmed that it is exactly what 
I am looking for. Thank you very much for the advice.


Frederic

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


Re: how to get os.system () call to cooperate on Windows

2009-10-26 Thread Kushal Kumaran
On Tue, Oct 27, 2009 at 2:04 AM, Anthra Norell anthra.nor...@bluewin.ch wrote:
 snip

 No, I didn't. There's a number of modules I know by name only and shutils
 was one of them. A quick peek confirmed that it is exactly what I am looking
 for. Thank you very much for the advice.


Then Doug Hellmann's PyMOTW is for you. http://blog.doughellmann.com/

-- 
regards,
kushal
-- 
http://mail.python.org/mailman/listinfo/python-list