python launcher for whindows编码不正常无法运行
我在windows下写的python脚本,用右键->打开方式->python launcher for whindows(console),出现命令行窗口一闪而过,程序不运行。代码如下,名为test.py, 如果程序成功运行的话,会产生一个f.txt文件 ,但是实际上并没有产生。
f=open('f.txt','w')
for i in range(0,10):
f.write(str(i)+'\n')
f.close()
print("hi")
x=input()
同时我尝试了在cmd中输入py -3 test.py 可以成功运行并产生f.txt文件。
环境win8.1 x64, python 3.4.3 32bit。(本机同时装有python 2.7.10 32bit)
谢谢。
更新:已经确定和编码问题有关···
更行:我知道怎么回事了···我犯了两个错误我会在下面自己的回答中说清楚。
Answers
好吧,我是题主,问题我已经解决了···很简单的问题···
首先说一下,我一开始遇到问题的脚本是我写的一个和本地文件读写无关的脚本,问题中的test.py脚本则是我为了debug写的。
题目中已经说了,我电脑中装了两个版本的python,所以一开始出问题的时候我也考虑是不是python版本的问题,于是我看了一下py.exe
很好,于是我就没再考虑python版本的问题···
后来···我蛋疼的开始用process monitor(ms sysinternals中的)看看到底怎么回事···
然后发现 - - - - - - - - - - - - - - - - - - - -_-
文件操作很多都是在python27中
我擦···
然后我打开py.exe看了一下···
我的内心是崩溃的···
于是我看了看PEP 397 -- Python launcher for Windows https://www.python.org/dev/peps/pep-0397/
在Python Version Qualifiers 部分看到了这句话
If no version qualifiers are found in a command, the environment
variable
PY_PYTHON
can be set to specify the default version qualifier - the default
value is "2". Note this value could specify just a major version (e.g. "2") or
a major.minor qualifier (e.g. "2.6"), or even major.minor-32.
如果我没理解错,不加参数的情况下默认给我选择了python2···(如果我理解错了请务必告诉我多谢)
于是乎···
于是乎,到这里,我在我原来写的脚本中第一行添加了一句
#! python3
于是我原来写的脚本就能用了···
但是!!!!!!
我问题中的test.py依然不能用···
于是我终于想起了try except···
于是
[Errno 13] Permission denied: 'f.txt'
于是我终于想起用os.getcwd()看看工作目录
C:\Windows\system32
QAQ
+++++++++++++++++++++++++++++++++++++
虽然我是小白,但是我能折腾···