gpt4 book ai didi

python - 检查 python 中 .txt 文件的上下文 : True, False

转载 作者:太空宇宙 更新时间:2023-11-04 11:12:42 25 4
gpt4 key购买 nike

我有一个包含单个字符串的 .txt 文件。我想打开文件,检查字符串是什么,然后根据结果更改文件。

下面是我尝试让它工作的方法:

file = open('flag.txt', 'r+')
flagtext = file.read()
if flagtext == 'a':
print('a')
elif flagtext == 'b':
print('b')
file.close()
file = open('flag.txt', 'w+')
file.write('a')
file.close()

出于某种原因,这不起作用,在我的故障排除中,我发现文件(和标志文本)的内容对于 flagtext == 'a'flagtext == 'b',甚至在我创建文件后立即就是那个字母。

我已经尝试了 file.read() == 'a'flagtext == 'a' 但我无法让它们成为真的。我认为可能是因为文本文件有第二行,因为如果我只是print(file)那么输出就是

a


但我已经尝试进入并手动删除文本后的任何行,但我似乎无法坚持下去。

而且,如果所有这些都是完成我想要的事情的完全倒退的方式:这是我的大局目标。

我有一个在后台运行的 python 脚本。我希望能够从脚本外部更改它的行为。我的想法是让它定期检查这个文本文件的内容,所以我只需要更改文本文件来更改脚本行为。如果有更好的方法来实现该目标,我很乐意听到。

谢谢

最佳答案

您的变量名称是file,但您正在读取flag 变量,更改:

file = open('flag.txt', 'r+')

收件人:

flag = open('flag.txt', 'r+')

并且,要忽略那些尾随空格/换行符,请使用 rstrip:

flagtext = flag.read().rstrip()

此外,您应该使用上下文管理器打开您的文件,以避免错过 close 文件的问题(这种情况是因为在您的 if block 中,您不关闭文件):

with open('flag.txt', 'r+') as flag:
flagtext = flag.read().rstrip()
...

with open('flag.txt', 'w+') as flag:
flag.write('a')

这样,文件会在退出with block 后自动关闭。

关于python - 检查 python 中 .txt 文件的上下文 : True, False,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57827554/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com