On Feb 24, 1:44 pm, "Gabriel Genellina" <gagsl-...@yahoo.com.ar> wrote: > En Tue, 24 Feb 2009 05:15:33 -0200, venu madhav <venutaurus...@gmail.com> > escribió: > > > > >> > def findFile(dir_path): > >> > for name in os.listdir(dir_path): > >> > full_path = os.path.join(dir_path, name) > >> > print full_path > >> > if os.path.isdir(full_path): > >> > findFile(full_path) > >> > else: > >> > v = unicode(full_path,errors='skip') > >> > i = win32api.GetFileAttributes(v) > > >> > findFile("F:\\DataSet\\Unicode") > >> > --------------------------------------------------------------- > >> > Now when I run this scirpt, the full_path variable which should > >> contain > >> the > >> > name of the file has "????" for non english ( I tried Arabic) > >> characters. > >> As > >> > a result the getfileattributes function is failing to recognise that > >> file > >> > and is raising an exception. > >> > i = win32api.GetFileAttributes(v) > >> > error: (123, 'GetFileAttributes', 'The filename, directory name, or > >> volume > >> > label syntax is incorrect.') > > If you call os.listdir with an unicode directory, it returns unicode file > names. > That is (after correcting the previous error in findFile), call it using: > findFile(u"F:\\DataSet\\Unicode") > > -- > Gabriel Genellina
Thank you for your solution. It really helped. But how should I give if my path is in a varialble. For ex: path has that value obtained through command line arguments. path = sys.argv[2] In such a case how can we convert the path to UNICODE? Thank you once again, Venu -- http://mail.python.org/mailman/listinfo/python-list