曲折 发表于 2023-11-28 16:45:50

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

各位大神:
      首先我想说我是一个很新很新的新手(相信大家一看代码,也看的出来),可以说这个是我第一次想到写的东西。
      麻烦大家帮我看下,解决两个问题
      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


FishC_GPT 发表于 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()`

以下是整合后的代码示例:

#路段数据录入,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官方接口),如未能正确解答您的问题,请继续追问。

曲折 发表于 2023-11-30 07:58:49

FishC_GPT 发表于 2023-11-28 16:46
下面是关于你的两个问题的解答:

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

非常感谢,现在问题又出来了,这个还必须要做成一个小程序,才能每天8点准时运行,我还得学习!

FishC_GPT 发表于 2023-11-30 07:59:03

曲折 发表于 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]
查看完整版本: 谁能帮我解决以下两个问题,感谢!