Re: how to get os.system () call to cooperate on Windows
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
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
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
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
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
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
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
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
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