鱼C论坛

 找回密码
 立即注册
查看: 1462|回复: 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


想知道小甲鱼最近在做啥?请访问 -> 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()`

以下是整合后的代码示例:
#路段数据录入,road为6号区块, road为7号区块,road为8号区块,road为9号区块import random   #导入随机数模块,抽奖用import datetimeimport timeselected_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 roadelement = select_roadresult = 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官方接口),如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

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

使用道具 举报

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

不用担心,我可以帮你将代码转成一个完整的Python小程序,这样你就可以在每天早上8点准时运行了。请参考以下代码:
import randomimport datetimeimport timeselected_roads = []road = [['芜园西路', '浦源大道', '递铺中路', '玉华南路'],        ['玉华北路', '灵芝西路', '递铺北路', '石佛路', '古鄣路'],        ['天目路北段', '灵芝东路', '文馨路北段', '文秀路', '齐云路北段', '外环东线北段'],        ['天目路2段', '灵芝东路', '文馨路南段', '祥溪路', '齐云路南段', '外环东线南段', '芜园东路']]def remove_road(road, element):    for e in range(len(road)):        for f in range(len(road[e])):            if road[e][f] == element:                road[e].remove(element)    return roadwhile datetime.datetime.now().hour != 8:    time.sleep(1)i = random.randint(0, len(road)-1)j = random.randint(0, len(road[i])-1)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)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官方接口),如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-21 17:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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