gpt4 book ai didi

python - 为什么 Python 在不应该的时候给我 "an integer is required"?

转载 作者:太空狗 更新时间:2023-10-29 21:16:12 25 4
gpt4 key购买 nike

我的 Python 程序中有一个保存函数,如下所示:

def Save(n):
print("S3")
global BF
global WF
global PBList
global PWList
print(n)
File = open("C:\KingsCapture\Saves\\" + n + "\BF.txt", "w")
pickle.dump(BF, File)
File = open("C:\KingsCapture\Saves\\" + n + "\WF.txt", "w")
pickle.dump(WF, File)
File = open("C:\KingsCapture\Saves\\" + n + "\PBList.txt", "w")
pickle.dump(PBList, File)
File = open("C:\KingsCapture\Saves\\" + n + "\PWList.txt", "w")
pickle.dump(PWList, File)

这里,n是“1”。

我收到如下所示的错误:

  File "C:/Python27/KingsCapture.py", line 519, in Save
File = open("C:\KingsCapture\Saves\\" + n + "\BF.txt", "w")
TypeError: an integer is required

在 shell 中执行相同的加载后,我没有收到任何错误:

>>> File = open("C:\KingsCapture\Test\List.txt", "r")
>>> File = open("C:\KingsCapture\Test\List.txt", "w")
>>> n = "1"
>>> File = open("C:\KingsCapture\Saves\\" + n + "\BF.txt", "r")
>>> File = open("C:\KingsCapture\Saves\\" + n + "\BF.txt", "w")

为什么会出现问题?

最佳答案

你可能从 os 模块做了一个 star 导入:

>>> open("test.dat","w")
<open file 'test.dat', mode 'w' at 0x1004b20c0>
>>> from os import *
>>> open("test.dat","w")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: an integer is required

所以你使用了错误的 open 函数。 (我想你可以简单地完成 from os import open,但这不太可能。)一般来说,应该避免这种导入方式,应该避免使用 global,其中实用。

关于python - 为什么 Python 在不应该的时候给我 "an integer is required"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9354276/

25 4 0
文章推荐: c++ - 如何进行 C++ 对齐数组分配?
文章推荐: c# - 将对象转换为 IEnumerable