鱼C论坛

 找回密码
 立即注册
查看: 2693|回复: 3

谁能帮我解决以下两个问题,感谢!

[复制链接]
发表于 2023-11-28 16:45:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
各位大神:
        首先我想说我是一个很新很新的新手(相信大家一看代码,也看的出来),可以说这个是我第一次想到写的东西。
        麻烦大家帮我看下,解决两个问题
        1、每天早上8点准时运行程序
        2、在这个txt文件里记录每天的数据,不删除,中间间隔一行(除非自己手动删除)
                forexample: 2023年11月28日给您选中的是:递铺中路
                                
                                2023年11月29日给您选中的是:昌硕北路

                                。。。。。

#路段数据录入,road[0]为6号区块, road[1]为7号区块,road[2]为8号区块,road[3]为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


小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-11-28 16:46:24 | 显示全部楼层
下面是关于你的两个问题的解答:

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()`

以下是整合后的代码示例:
  1. #路段数据录入,road为6号区块, road为7号区块,road为8号区块,road为9号区块
  2. import random   #导入随机数模块,抽奖用
  3. import datetime
  4. import time
  5. selected_roads = []
  6. road = [['芜园西路', '浦源大道', '递铺中路', '玉华南路'],
  7.         ['玉华北路', '灵芝西路', '递铺北路', '石佛路', '古鄣路'],
  8.         ['天目路北段', '灵芝东路', '文馨路北段', '文秀路', '齐云路北段', '外环东线北段'],
  9.         ['天目路2段', '灵芝东路', '文馨路南段', '祥溪路', '齐云路南段', '外环东线南段', '芜园东路']
  10.         ]
  11. i = random.randint(0, len(road)-1)  # list1层的随机数
  12. j = random.randint(0, len(road[i])-1)  # list2层的随机数
  13. #把选择的路段赋值到一个变量中,并且加入到已经选路段列表中
  14. select_road = road[i][j]
  15. selected_roads.append(select_road)
  16. if i == 0:
  17.         print('随机给您选择的路段为巾帼第六区块:' + select_road)
  18. elif i == 1:
  19.         print('随机给您选择的路段为巾帼第七区块:' + select_road)
  20. elif i == 2:
  21.         print('随机给您选择的路段为巾帼第八区块:' + select_road)
  22. elif i == 3:
  23.         print('随机给您选择的路段为巾帼第九区块:' + select_road)
  24. # 下列程序遍历所有的数据,删除正好选中的那条路的数据。
  25. def remove_road(road, element):
  26.         for e in range(len(road)-1):
  27.                 for f in range(len(road[e])-1):
  28.                         if road[e][f] == element:
  29.                                 road[e].remove(element)
  30.         return road
  31. element = select_road
  32. result = remove_road(road, element)
  33. print(road)
  34. current_time = datetime.datetime.now()
  35. #每天早上8点准时运行程序
  36. while datetime.datetime.now().hour != 8:
  37.     time.sleep(1)
  38. #把每次剔除后的路段写入到文本中
  39. with open('F:\\road\\road.txt', 'a') as file:
  40.     file.write(str(current_time.year) + '年' + str(current_time.month) + '月' + str(current_time.day) + '日' + '给您选中的路段为: ' + select_road + '\n')
  41.    
  42.     #文件写入完成后,可以关闭文件
  43.     file.close()
复制代码

希望这些可以帮到你!如果还有其他问题,请随时提问。

以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-11-30 07:58:49 | 显示全部楼层
FishC_GPT 发表于 2023-11-28 16:46
下面是关于你的两个问题的解答:

1. 每天早上8点准时运行程序:

非常感谢,现在问题又出来了,这个还必须要做成一个小程序,才能每天8点准时运行,我还得学习!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-30 07:59:03 | 显示全部楼层
曲折 发表于 2023-11-30 07:58
非常感谢,现在问题又出来了,这个还必须要做成一个小 ...

不用担心,我可以帮你将代码转成一个完整的Python小程序,这样你就可以在每天早上8点准时运行了。请参考以下代码:
  1. import random
  2. import datetime
  3. import time
  4. selected_roads = []
  5. road = [['芜园西路', '浦源大道', '递铺中路', '玉华南路'],
  6.         ['玉华北路', '灵芝西路', '递铺北路', '石佛路', '古鄣路'],
  7.         ['天目路北段', '灵芝东路', '文馨路北段', '文秀路', '齐云路北段', '外环东线北段'],
  8.         ['天目路2段', '灵芝东路', '文馨路南段', '祥溪路', '齐云路南段', '外环东线南段', '芜园东路']
  9. ]
  10. def remove_road(road, element):
  11.     for e in range(len(road)):
  12.         for f in range(len(road[e])):
  13.             if road[e][f] == element:
  14.                 road[e].remove(element)
  15.     return road
  16. while datetime.datetime.now().hour != 8:
  17.     time.sleep(1)
  18. i = random.randint(0, len(road)-1)
  19. j = random.randint(0, len(road[i])-1)
  20. select_road = road[i][j]
  21. selected_roads.append(select_road)
  22. if i == 0:
  23.     print('随机给您选择的路段为巾帼第六区块:' + select_road)
  24. elif i == 1:
  25.     print('随机给您选择的路段为巾帼第七区块:' + select_road)
  26. elif i == 2:
  27.     print('随机给您选择的路段为巾帼第八区块:' + select_road)
  28. elif i == 3:
  29.     print('随机给您选择的路段为巾帼第九区块:' + select_road)
  30. result = remove_road(road, select_road)
  31. print(road)
  32. current_time = datetime.datetime.now()
  33. with open('F:\\road\\road.txt', 'a') as file:
  34.     file.write(str(current_time.year) + '年' + str(current_time.month) + '月' + str(current_time.day) + '日' + '给您选中的路段为: ' + select_road + '\n')
  35. print("程序运行完毕!")
复制代码

将上述代码保存为一个.py文件(例如`daily_program.py`),然后,你可以使用Python解释器或者命令行工具运行这个小程序。每天早上8点,它会自动运行并输出结果,并将结果写入到txt文件中。

希望这个解决方案对你有帮助!如果还有其他问题,请随时提问。

以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-24 08:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表