Python 2.7 and cmd on Windows 7 64 (files lost)

Discussion in 'Python' started by Michel Claveau - MVP, Jun 23, 2011.

  1. Hi!

    (sorry for my bad english...)

    On Win 7 64 bits:
    Command-Line
    CD \Python27
    dir C:\Windows\System32\SoundRecorder.exe :==> OK
    Python.exe

    >>> import os
    >>> os.system("dir C:\\Windows\\System32\\SoundRecorder.exe")


    ==> Do not found the file !!!

    and os.system("cmd /k") then "dir C:\Windows\System32\SoundRecorder.exe" do not found
    anyway.

    But:
    {Ctrl-Z} in Python
    then dir C:\Windows\System32\SoundRecorder.exe run OK

    Therefore, is the problem only in Python?


    @+
    --
    Michel Claveau
    Michel Claveau - MVP, Jun 23, 2011
    #1
    1. Advertising

  2. * Michel Claveau - MVP (Thu, 23 Jun 2011 08:33:20 +0200)
    > On Win 7 64 bits:
    > Command-Line
    > CD \Python27
    > dir C:\Windows\System32\SoundRecorder.exe :==> OK
    > Python.exe
    >
    > >>> import os
    > >>> os.system("dir C:\\Windows\\System32\\SoundRecorder.exe")

    >
    > ==> Do not found the file !!!
    >
    > and os.system("cmd /k") then "dir C:\Windows\System32\SoundRecorder.exe" do not found
    > anyway.


    This is because 32-bit processes (Python, 32-bit cmd) cannot see the 64-
    bit DLLs in System32.

    > But:
    > {Ctrl-Z} in Python
    > then dir C:\Windows\System32\SoundRecorder.exe run OK


    Now you are running 64-bit Cmd.

    > Therefore, is the problem only in Python?


    Of course not (see above).

    Thorsten
    Thorsten Kampe, Jun 23, 2011
    #2
    1. Advertising

  3. Michel Claveau - MVP

    Tim Golden Guest

    On 23/06/2011 07:33, Michel Claveau - MVP wrote:
    > Hi!
    >
    > (sorry for my bad english...)
    >
    > On Win 7 64 bits:
    > Command-Line
    > CD \Python27
    > dir C:\Windows\System32\SoundRecorder.exe :==> OK
    > Python.exe
    >
    >>>> import os
    >>>> os.system("dir C:\\Windows\\System32\\SoundRecorder.exe")

    >
    > ==> Do not found the file !!!
    >
    > and os.system("cmd /k") then "dir C:\Windows\System32\SoundRecorder.exe" do not found
    > anyway.
    >
    > But:
    > {Ctrl-Z} in Python
    > then dir C:\Windows\System32\SoundRecorder.exe run OK
    >
    > Therefore, is the problem only in Python?


    Certain commands, including "dir" and "copy" are not executables
    in their own right, but merely subcommands of cmd.exe. You've
    got two options in Python:

    os.system (r"cmd /c dir c:\windows")

    or:

    subprocess.call (["dir", "c:\\windows"], shell=True)

    which basically does it for you behind the scenes.

    I hope that helps..

    TJG
    Tim Golden, Jun 23, 2011
    #3
  4. * Tim Golden (Thu, 23 Jun 2011 08:31:26 +0100)
    >
    > Certain commands, including "dir" and "copy" are not executables
    > in their own right, but merely subcommands of cmd.exe.


    Right, "internal commands".

    > You've got two options in Python:
    >
    > os.system (r"cmd /c dir c:\windows")


    os.system automatically runs a shell (cmd) - see the documentation.

    Thorsten
    Thorsten Kampe, Jun 23, 2011
    #4
  5. Michel Claveau - MVP

    Tim Golden Guest

    On 23/06/2011 09:08, Thorsten Kampe wrote:
    > * Tim Golden (Thu, 23 Jun 2011 08:31:26 +0100)
    >>
    >> Certain commands, including "dir" and "copy" are not executables
    >> in their own right, but merely subcommands of cmd.exe.

    >
    > Right, "internal commands".
    >
    >> You've got two options in Python:
    >>
    >> os.system (r"cmd /c dir c:\windows")

    >
    > os.system automatically runs a shell (cmd) - see the documentation.


    Thanks: should have checked my sources before writing :(

    TJG
    Tim Golden, Jun 23, 2011
    #5
  6. Re !

    > This is because 32-bit processes (Python, 32-bit cmd) cannot see the
    > 64-bit DLLs in System32.


    Thanks.
    You are right... but it is not enought.

    This command: echo %PROCESSOR_ARCHITECTURE%
    give the statut:
    32: x86
    64: AMD64

    and DIR C:\Windows\System32\SoundRecorder.exe is OK in 64, not in 32.



    But if, in 64 mode, I copy SoundRecorder.exe to sr.exe, then I rename
    sr.exe to sr.txt, the file (which is not an executable) is not visible
    in 32 mode.
    And, if I move (or copy) sr.txt in an USB-drive, the file become visible
    in 32 mode !!!???

    Therefore, Windows has a "trick" for mark the file like visible, or not,
    in 32 mode. What trick?


    OK, it is not a Python problem.
    Then... thanks again for your explanations.


    @-salutations
    --
    Michel Claveau
    Michel Claveau - MVP, Jun 23, 2011
    #6
  7. > Therefore, Windows has a "trick" for mark the file like visible, or not,
    > in 32 mode. What trick?


    It's called file system redirection. When you access \windows\system32
    in a 32-bit process, you *actually* access \windows\syswow64, which
    has entirely different files.

    The same also happens for parts of the registry.

    Regards,
    Martin
    Martin v. Loewis, Jun 24, 2011
    #7
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Achim Domma (Procoders)

    read input for cmd.Cmd from file

    Achim Domma (Procoders), Jun 3, 2005, in forum: Python
    Replies:
    2
    Views:
    8,056
    Peter Otten
    Jun 3, 2005
  2. Sarir Khamsi

    Interpreter-like help in cmd.Cmd

    Sarir Khamsi, Jun 9, 2005, in forum: Python
    Replies:
    4
    Views:
    362
    Bengt Richter
    Jun 26, 2005
  3. =?ISO-8859-1?Q?Sch=FCle_Daniel?=

    [exec cmd for cmd in cmds]

    =?ISO-8859-1?Q?Sch=FCle_Daniel?=, Mar 8, 2006, in forum: Python
    Replies:
    3
    Views:
    382
    Scott David Daniels
    Mar 8, 2006
  4. Jean-Michel Pichavant

    python cmd.Cmd auto complete feature

    Jean-Michel Pichavant, Mar 8, 2011, in forum: Python
    Replies:
    0
    Views:
    309
    Jean-Michel Pichavant
    Mar 8, 2011
  5. Jean-Michel Pichavant

    Re: python cmd.Cmd auto complete feature

    Jean-Michel Pichavant, Mar 9, 2011, in forum: Python
    Replies:
    0
    Views:
    461
    Jean-Michel Pichavant
    Mar 9, 2011
Loading...

Share This Page