【问题标题】:My Python code gets skipped?我的 Python 代码被跳过了?
【发布时间】:2014-07-05 16:14:43
【问题描述】:

我用 Python 2.7 编写了一个基于文本的小型游戏,它可以通过 FTP 自行修补。 当我启动我的启动器时,游戏在没有打补丁的情况下启动,我做错了什么?

import hotseat
import ftplib as ftp


#connect to FTP server
ftp = ftp.FTP("...", "...", "...")
ftp.cwd ("recent_version")
print "Connection to server succesfull"

#Patch Characters
f = open("chars.py", "wb")
ftp.retrbinary ("RETR chars.py", f.write)
f.close
print "Retrieved character data"

#Patch Hotseat
f = open("hotseat.py", "wb")
ftp.retrbinary ("RETR hotseat.py", f.write)
f.close
ftp.quit()

print "Retrieved game data"
print

hotseat.hotseat()

当我运行脚本时,我得到了 hotseat 模块的输出(“欢迎使用 hotseat 模式”),但没有警告或“已连接到服务器”...

我做错了什么?

【问题讨论】:

  • 无论如何都行不通。 Python 首先 加载您的 Python 文件,然后运行代码。重写文件不会更新 Python 运行的代码,它已经读取了文件。
  • 我可以写一个文件,覆盖文件然后调用启动器文件吗?
  • 您的启动器可以从 FTP 加载 单独 文件,然后导入该文件。如果在加载新版本之前未导入该文件,则将使用最新版本。

标签: python ftp


【解决方案1】:

我通过在目录中添加一个 version.txt 文件解决了这个问题。 启动器检查本地 version.txt 的内容是否与托管版本文件匹配。 如果它们不匹配,则在用户使用 updater.py 下载更新的文件之前,游戏不会开始。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-09
    • 2020-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-21
    • 1970-01-01
    • 2017-05-24
    相关资源
    最近更新 更多