gpt4 book ai didi

Python 防止文件被修改

转载 作者:行者123 更新时间:2023-11-28 18:14:55 25 4
gpt4 key购买 nike

我正在为天普大学的类(class)编写 Hacker Rank 风格的离线应用程序。我有一个 task.py,用户应该在其中编写自己的代码。我有一个 test.py,我在其中创建了一个模块来测试用户的代码。

我正在使用 Thonny,因为它需要的资源非常少,如果学生家里没有互联网,代码就是为他们编写的,这被假定为是。

这里是 task.py 的例子

import sys
def variables():
f = open('test.txt', 'w')

#Start your code below (tip: Make sure to indent your code)
penguin = "Penguin"
six = "6"
false = "False"
none = "None"
a = "100.66"
f.write(penguin+"\n")
f.write(six+"\n")
f.write(false+"\n")
f.write(none+"\n")
f.write(a+"\n")

print(penguin)
print(6)
print(false)
print(none)
print(a)

f.close()

这是我的测试文件,test.py

from task import variables
import filecmp, os

variables()
a=filecmp.cmp("test.txt","ans.txt")
if a == True:
print("Test Case Passed")
os.remove("test.txt")`

我需要将 test.py 文件锁定以便学生无法修改它,但我需要它能够被调用。有什么想法吗?

最佳答案

有一个名为 portalocker ( https://pypi.python.org/pypi/portalocker ) 的跨平台文件锁定模块,但如果您不想使用它,您可以检查其他东西。使用操作系统功能

last_mod = os.path.getmtime('test.txt')

将为您提供文件的最后一次修改时间,如果最后一次修改的时间与创建文件的时间不同,则表示有人对其进行了编辑。这只是 portalocker 的替代方法...只需在某处保留 og 文件的副本,如果修改时间不同,只需让 python 将副本写入修改后的文件即可。我强烈建议只使用这个模块,因为您可以从中使用更多很酷的功能。如果您有任何其他问题,请发表评论。

关于Python 防止文件被修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48950054/

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