On Tue, Aug 23, 2016 at 1:54 AM, eryk sun <eryk...@gmail.com> wrote: > On Mon, Aug 22, 2016 at 1:17 PM, Chris Angelico <ros...@gmail.com> wrote: >> I tried things like "con.txt" and it simply failed (no such file or >> directory), without printing anything to the console. > > Are you using IDLE or some other IDE that uses pythonw.exe instead of > python.exe? If so, first use ctypes to allocate a console: > > import ctypes > ctypes.WinDLL('kernel32').AllocConsole() > > The CON device should work if the process is attached to a console > (i.e. a conhost.exe instance).
No, I used Pike (to avoid any specifically-Python issues or protections) running in a console. Attempting to write to "Logs/con" wrote to the console, so I know the console device is active. Attempting to write to "Logs/con.txt" failed as described. > > I wouldn't accept file names from untrusted sources on *any* system > > There are still desktop applications that ask users to name their files. A person running a desktop application is generally considered a trusted source. In a kiosk environment, you have a lot more to worry about than special device names (eg someone could overwrite a key file), so again, allowing an untrusted user to name a file in that situation would be inappropriate. If the user owns the computer, s/he should be allowed to attempt any name, and there'd simply be some that fail - same as any other invalid characters (Windows won't let you put a colon or question mark in a file name, for instance, which annoys my brother no end when I give him files like "What's Up, Doc?.mkv" or "Operation: Rabbit.mkv") or over-long names or anything like that. ChrisA -- https://mail.python.org/mailman/listinfo/python-list