Python无法正确读取文件/执行代码

时间:2017-04-27 22:27:56

标签: python-3.x

我有一个奇怪的问题,我不确定为什么会发生。

在游戏中,我输入一个命令(:: pos),它将位置坐标写入.txt文件。当我尝试自动执行此过程(使用win32com键入命令)并读取文件时,将显示先前的coords而不是当前的coords。这没有任何意义,因为我在显示之前更新了坐标:

def add(self):
    id = self.myTextInput.text()
    shell.AppActivate('App title')
    # Update position file
    shell.SendKeys('::pos')
    shell.SendKeys('{ENTER}')
    # Add object
    shell.SendKeys('::object ' + id + ' 0')
    shell.SendKeys('{ENTER}')
    # Read position
    with open('.txt file path', 'r') as f:
        f = f.read().split()
        self.listWidget.addItem(id + ' ' + f[1] + ' ' + f[3] + ' 0')

按下“添加”按钮后执行代码。奇怪的是,如果我创建一个单独的按钮和名为'updatePos'的函数(我在按'add'之前按下),它一切正常,但如果我只是在add中调用updatePos()函数则不起作用。我也尝试过使用sleep来交错命令,但这似乎也很奇怪(在它之前睡觉代码块,不确定它的shell命令是否搞乱它?)。

我认为代码可能在异常的顺序执行?例如。在更新职位之前打开和阅读文本文件 - 但不确定为什么会发生这种情况。

1 个答案:

答案 0 :(得分:0)

您需要先关闭文件,然后才能阅读更改。

尝试将f.close()添加到此末尾。