谁能帮我解决以下两个问题,感谢!
各位大神:首先我想说我是一个很新很新的新手(相信大家一看代码,也看的出来),可以说这个是我第一次想到写的东西。
麻烦大家帮我看下,解决两个问题
1、每天早上8点准时运行程序
2、在这个txt文件里记录每天的数据,不删除,中间间隔一行(除非自己手动删除)
forexample: 2023年11月28日给您选中的是:递铺中路
2023年11月29日给您选中的是:昌硕北路
。。。。。
#路段数据录入,road为6号区块, road为7号区块,road为8号区块,road为9号区块
import random #导入随机数模块,抽奖用
import datetime
selected_roads = []
road = [['芜园西路', '浦源大道', '递铺中路', '玉华南路'],
['玉华北路', '灵芝西路', '递铺北路', '石佛路', '古鄣路'],
['天目路北段', '灵芝东路', '文馨路北段', '文秀路', '齐云路北段', '外环东线北段'],
['天目路2段', '灵芝东路', '文馨路南段', '祥溪路', '齐云路南段', '外环东线南段', '芜园东路']
]
i = random.randint(0, len(road)-1)# list1层的随机数
j = random.randint(0, len(road[i])-1)# list2层的随机数
#把选择的路段赋值到一个变量中,并且加入到已经选路段列表中
select_road = road[i][j]
selected_roads.append(select_road)
if i == 0:
print('随机给您选择的路段为巾帼第六区块:' + select_road)
elif i == 1:
print('随机给您选择的路段为巾帼第七区块:' + select_road)
elif i == 2:
print('随机给您选择的路段为巾帼第八区块:' + select_road)
elif i == 3:
print('随机给您选择的路段为巾帼第九区块:' + select_road)
# 下列程序遍历所有的数据,删除正好选中的那条路的数据。
def remove_road(road, element):
for e in range(len(road)-1):
for f in range(len(road[e])-1):
if road[e][f] == element:
road[e].remove(element)
return road
element = select_road
result = remove_road(road, element)
print(road)
current_time = datetime.datetime.now()
#把每次剔除后的路段写入到文本中,缺点:不能分时间保存。
with open('F:\\road\\road.txt', 'a') as file:
file.write(str(current_time.year) + '年' + str(current_time.month) + '月' + str(current_time.day) + '日' + '给您选中的路段为: ' + select_road )
# file.write(str(road) + '\n' + '给您选中的路段为: ' + select_road)
file.close
下面是关于你的两个问题的解答:
1. 每天早上8点准时运行程序:
要实现这个功能,你可以使用Python的time模块来控制程序的执行时间。具体步骤如下:
- 首先,导入time模块:`import time`
- 然后,使用while循环来判断当前时间是否已经达到了8点:`while datetime.datetime.now().hour != 8: time.sleep(1)` (注意要导入datetime模块)
- 当时间达到了8点,就会跳出循环,继续执行后续的代码。
2. 在txt文件中记录每天的数据:
要实现这个功能,你可以使用Python的文件操作功能。具体步骤如下:
- 首先,使用with语句打开文件,以追加模式写入数据:`with open('F:\\road\\road.txt', 'a') as file:`
- 然后,使用write方法将数据写入文件:`file.write(str(current_time.year) + '年' + str(current_time.month) + '月' + str(current_time.day) + '日' + '给您选中的路段为: ' + select_road + '\n')`
- 最后,关闭文件:`file.close()`
以下是整合后的代码示例:
#路段数据录入,road为6号区块, road为7号区块,road为8号区块,road为9号区块
import random #导入随机数模块,抽奖用
import datetime
import time
selected_roads = []
road = [['芜园西路', '浦源大道', '递铺中路', '玉华南路'],
['玉华北路', '灵芝西路', '递铺北路', '石佛路', '古鄣路'],
['天目路北段', '灵芝东路', '文馨路北段', '文秀路', '齐云路北段', '外环东线北段'],
['天目路2段', '灵芝东路', '文馨路南段', '祥溪路', '齐云路南段', '外环东线南段', '芜园东路']
]
i = random.randint(0, len(road)-1)# list1层的随机数
j = random.randint(0, len(road)-1)# list2层的随机数
#把选择的路段赋值到一个变量中,并且加入到已经选路段列表中
select_road = road
selected_roads.append(select_road)
if i == 0:
print('随机给您选择的路段为巾帼第六区块:' + select_road)
elif i == 1:
print('随机给您选择的路段为巾帼第七区块:' + select_road)
elif i == 2:
print('随机给您选择的路段为巾帼第八区块:' + select_road)
elif i == 3:
print('随机给您选择的路段为巾帼第九区块:' + select_road)
# 下列程序遍历所有的数据,删除正好选中的那条路的数据。
def remove_road(road, element):
for e in range(len(road)-1):
for f in range(len(road)-1):
if road == element:
road.remove(element)
return road
element = select_road
result = remove_road(road, element)
print(road)
current_time = datetime.datetime.now()
#每天早上8点准时运行程序
while datetime.datetime.now().hour != 8:
time.sleep(1)
#把每次剔除后的路段写入到文本中
with open('F:\\road\\road.txt', 'a') as file:
file.write(str(current_time.year) + '年' + str(current_time.month) + '月' + str(current_time.day) + '日' + '给您选中的路段为: ' + select_road + '\n')
#文件写入完成后,可以关闭文件
file.close()
希望这些可以帮到你!如果还有其他问题,请随时提问。
以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。 FishC_GPT 发表于 2023-11-28 16:46
下面是关于你的两个问题的解答:
1. 每天早上8点准时运行程序:
非常感谢,现在问题又出来了,这个还必须要做成一个小程序,才能每天8点准时运行,我还得学习! 曲折 发表于 2023-11-30 07:58
非常感谢,现在问题又出来了,这个还必须要做成一个小 ...
不用担心,我可以帮你将代码转成一个完整的Python小程序,这样你就可以在每天早上8点准时运行了。请参考以下代码:
import random
import datetime
import time
selected_roads = []
road = [['芜园西路', '浦源大道', '递铺中路', '玉华南路'],
['玉华北路', '灵芝西路', '递铺北路', '石佛路', '古鄣路'],
['天目路北段', '灵芝东路', '文馨路北段', '文秀路', '齐云路北段', '外环东线北段'],
['天目路2段', '灵芝东路', '文馨路南段', '祥溪路', '齐云路南段', '外环东线南段', '芜园东路']
]
def remove_road(road, element):
for e in range(len(road)):
for f in range(len(road)):
if road == element:
road.remove(element)
return road
while datetime.datetime.now().hour != 8:
time.sleep(1)
i = random.randint(0, len(road)-1)
j = random.randint(0, len(road)-1)
select_road = road
selected_roads.append(select_road)
if i == 0:
print('随机给您选择的路段为巾帼第六区块:' + select_road)
elif i == 1:
print('随机给您选择的路段为巾帼第七区块:' + select_road)
elif i == 2:
print('随机给您选择的路段为巾帼第八区块:' + select_road)
elif i == 3:
print('随机给您选择的路段为巾帼第九区块:' + select_road)
result = remove_road(road, select_road)
print(road)
current_time = datetime.datetime.now()
with open('F:\\road\\road.txt', 'a') as file:
file.write(str(current_time.year) + '年' + str(current_time.month) + '月' + str(current_time.day) + '日' + '给您选中的路段为: ' + select_road + '\n')
print("程序运行完毕!")
将上述代码保存为一个.py文件(例如`daily_program.py`),然后,你可以使用Python解释器或者命令行工具运行这个小程序。每天早上8点,它会自动运行并输出结果,并将结果写入到txt文件中。
希望这个解决方案对你有帮助!如果还有其他问题,请随时提问。
以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。
页:
[1]