On Wednesday, March 29, 2017 at 10:28:58 AM UTC-7, eryk sun wrote: > On Wed, Mar 29, 2017 at 4:06 PM, <[email protected]> wrote: > > I wrote a Python script, which executed as intended on Linux and > > from cmd.exe on Windows. Then, I ran it from the PowerShell > >command line, all print statements added ^@ after every character. > > ISE is the only command-line environment that's specific to > PowerShell. Surely you wouldn't be running Python scripts in ISE. > > If powershell.exe is run normally, then it's a console application. > python.exe would inherit the console handle, and that's the end of its > interaction with PowerShell. At most PowerShell (or any process that's > attached to the console) may have set the console to a different > output codepage via SetConsoleOutputCP or set the mode on the screen > buffer via SetConsoleMode. As far as I know, neither of these can make > the console print "^@" as a representation of NUL. It only shows "^@" > in the input buffer when you type Ctrl+2, which is what most terminals > do. For example: > > >>> s = sys.stdin.read(6) > spam^@ > >>> s > 'spam\x00\n' > >>> print(s) > spam
I'm not using ISE. I'm using a pre-edited script, and running it with the python command. Consider the following simple script named hello.py (Python 2.7): print "Hello" If I enter: python hello.py > out.txt from cmd.exe I get a 6-character file (characters plus new-line). from PowerShell I get an extract ^@ character after every character j -- https://mail.python.org/mailman/listinfo/python-list
