Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Problem with os.system()

77 views
Skip to first unread message

venuta...@gmail.com

unread,
Feb 24, 2009, 11:20:52 PM2/24/09
to
Hello,
I am facing problems while using os.system() of python for
copying a file from source to destination where the file name is in
unicode (multi lingual characters).My python interpreter is trying to
convert them to ascii and is failing. I tried giving unicode string as
input for the function something like:

c = u"copy "+"\""+full_path+"\" "+dest
os.system (c)

where the full_path contains filenames with unicode characters(unicode
data type). I tried searching in google and came to know that UNICODE
support wasn't there for os.system function till python2.3[1].
Currently I am using python2.6 but couldn't find anywhere whether a
support has been provided or not. Can some one suggest me any work
around for this. If I do a manual encoding of the file name to ascii,
it results in loss of data and hence the copy command wouldn't find
the file name.


---------------------------------------------------------------------------------------------------------
Traceback (most recent call last):
File "C:\unitest.py", line 32, in <module>
findFile(u"E:\\New Folder")
File "C:\unitest.py", line 17, in findFile
findFile(full_path)
File "C:\unitest.py", line 17, in findFile
findFile(full_path)
File "C:\unitest.py", line 27, in findFile
os.system (c)
UnicodeEncodeError: 'ascii' codec can't encode characters in position
47-72: ordinal not in range(128)
------------------------------------------------------------------------------------------------------


[1] http://mail.python.org/pipermail/python-list/2003-January/182182.html

Thanks in advance,
Venu M

venuta...@gmail.com

unread,
Feb 24, 2009, 11:22:47 PM2/24/09
to

Christian Heimes

unread,
Feb 24, 2009, 11:55:34 PM2/24/09
to pytho...@python.org
venuta...@gmail.com schrieb:

> Hello,
> I am facing problems while using os.system() of python for
> copying a file from source to destination where the file name is in
> unicode (multi lingual characters).My python interpreter is trying to
> convert them to ascii and is failing. I tried giving unicode string as
> input for the function something like:
>
> c = u"copy "+"\""+full_path+"\" "+dest
> os.system (c)

First of all do not use os.system() to run external programs. You'll get
in all sorts of trouble like quoting. You are far better of with the
subprocess module.

Second, why are you using an external program at all? The shutil module
contains multiple functions to copy a file or directory.

import shutil
shutil.copy(source, dest)

Christian

venuta...@gmail.com

unread,
Feb 25, 2009, 12:28:27 AM2/25/09
to
On Feb 25, 9:55 am, Christian Heimes <li...@cheimes.de> wrote:
> venutaurus...@gmail.com schrieb:

Thanks Christian for your reply,will definitely try.

0 new messages