Python argv and special characters

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • trapeze.jsg@gmail.com

    #1

    Python argv and special characters

    Hi.

    Platform: Win XP
    Python version: 2.4.1
    Running script from: cmd.exe (windows console)

    I am having some trouble passing arguments to a python script having
    special characters. In my case the argument is a filename (eg.
    udtræk.xml). It seems like python tries to guess the encoding in which
    the arguments are passed, instead of just recieving them in unicode,
    thus using main() instead of wmain() inside the interpreter. So I get
    an exception "IOError: [Errno 2] No such file or directory:
    'udtr\xe6k.xml' " as a result.

    How can I ensure a safe passing of arguments maybe having speciel
    characters within.

    Best Regards
    Jakob Simon-Gaarde

  • Neil Hodgson

    #2
    Re: Python argv and special characters

    Jakob Simon-Gaarde:
    [color=blue]
    > How can I ensure a safe passing of arguments maybe having speciel
    > characters within.[/color]

    Use ctypes to call the Windows GetCommandLine function. The
    CommandLineToAr gvW function can be used to break up the command line
    string into arguments.

    Neil

    Comment

    • trapeze.jsg@gmail.com

      #3
      Re: Python argv and special characters

      thanks :-) It seems a little overkill though, is it really the
      only/best way?

      Comment

      • Neil Hodgson

        #4
        Re: Python argv and special characters

        Jakob Simon-Gaarde:
        [color=blue]
        > thanks :-) It seems a little overkill though, is it really the
        > only/best way?[/color]

        Yes. I should have mentioned you want the wide version of the
        function GetCommandLineW . I wrote a patch to allow unicode in argv but
        later agreed that the patch should be rejected:
        https://sourceforge.net/tracker/?fun...&group_id=5470

        Neil

        Comment

        Working...