我寫了下面的代碼:獲得意想不到的OSERROR
def bigger(a,b):
if a>b:
return a
else:
return b
print(bigger(1,3))
我保存的代碼爲文件命名bigger.py。
exec(open('e:\py\bigger.py').read())
的Python返回以下錯誤信息:
然後我用下面的代碼在Python解釋器(Python的3.6)執行的文件
>>> exec(open('e:\py\bigger.py').read())
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OSError: [Errno 22] Invalid argument: 'e:Vipy\x08igger.py'
正如你所看到的,它說文件名是x08igger.py
,而我在代碼中輸入的是bigger.py
。這太奇怪了!
但是,爲什麼你甚至不能以這種方式運行腳本?只需在正常的命令提示符下從Python解釋器外部運行它。您也可以通過導入它來從開放的解釋器會話中運行它(假設腳本位於Python知道的路徑上)。例如,「進口更大」。一旦它被導入,你可以調用它的函數,例如'print(larger.bigger(5,7))'。 –
由於文件路徑中有反斜槓,因此您應該在字符串前加一個'r'來表示它們應該從字面上看,而不是與以下字符組合(如\ r和\ n)以形成一些其他的角色。換句話說,將其改爲'r'e:\ py \ bigger.py''。 – martineau