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
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
Thanks Christian for your reply,will definitely try.