为什么循环中调用now.strftime时间不会变,如何做到在循环中读取显示时间
时间: 2024-02-22 16:00:36 浏览: 28
循环中调用now.strftime时间不会变的原因是因为strftime()方法只是将datetime对象格式化成字符串,而不会改变datetime对象本身的值。如果你希望在循环中读取并显示当前时间,你可以使用datetime模块中的now()方法获取当前时间,然后将其格式化成字符串并输出。示例代码如下:
```python
import datetime
import time
for i in range(10):
now = datetime.datetime.now()
print(now.strftime('%Y-%m-%d %H:%M:%S'))
time.sleep(1)
```
上面的代码中,我们在每次循环开始时获取当前时间,并使用strftime()方法将其格式化成字符串并输出。注意,在每次循环之间添加了1秒钟的延迟,以便能够观察到时间的变化。如果你希望在循环中不断显示当前时间,可以将上面的代码放在一个while循环中,如下所示:
```python
import datetime
import time
while True:
now = datetime.datetime.now()
print(now.strftime('%Y-%m-%d %H:%M:%S'))
time.sleep(1)
```
上面的代码会一直循环输出当前时间,直到你手动停止程序。
相关问题
读取系统时间再输出
好的,下面是一个简单的 C 语言程序,用于读取当前系统时间并输出:
```c
#include <stdio.h>
#include <time.h>
int main() {
time_t now; // 声明 time_t 类型的变量
struct tm *tm_now; // 声明指向 struct tm 结构体的指针
char buf[64]; // 用于存储最终的时间字符串
// 获取当前系统时间
now = time(NULL);
// 转换为本地时间
tm_now = localtime(&now);
// 格式化时间字符串
strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S", tm_now);
// 输出时间字符串
printf("当前系统时间为:%s\n", buf);
return 0;
}
```
在这个程序中,我们首先声明了一个 `time_t` 类型的变量 `now`,用于存储当前系统时间。然后调用 `time()` 函数获取当前时间,将其存储到 `now` 变量中。
接下来,我们调用 `localtime()` 函数将 `now` 变量中的时间转换为本地时间,并将结果存储到一个 `struct tm` 结构体中。`struct tm` 结构体包含了年、月、日、小时、分钟、秒等时间信息。
最后,我们调用 `strftime()` 函数将 `struct tm` 结构体中的时间信息格式化为字符串,并将结果存储到 `buf` 数组中。最终,我们使用 `printf()` 函数输出格式化后的时间字符串。
""" 实现自动发送消息 """ import time import os from pywinauto.keyboard import send_keys # 键盘 while True: time_now = time.strftime("%H:%M:%S", time.localtime()) # 获取当前时间 sent_time = time.strftime("%H:%M:%S", time.localtime()) # 发送时间 if time_now == sent_time: # 当前时间等于发送时间则执行以下程序 def open_app(_app_dir): os.startfile(_app_dir) # 打开微信 if __name__ == "__main__": app_dir = r'C:\Program Files (x86)\Tencent\WeChat\WeChat.exe' # 此处为微信的绝对路径 open_app(app_dir) time.sleep(1) # 进入微信,模拟按键Ctrl+F send_keys('^f') send_keys('小贱果') time.sleep(1) send_keys('{ENTER}') # 回车键必须全部大小 # 需要发送的消息内容 message = '记得吃药哟' time.sleep(1) # 输入聊天内容 send_keys(message) # 回车发送消息 send_keys('{ENTER}') time.sleep(3) print('退出~~~') exit() # 退出程序
您的代码基本上已经实现了自动发送消息的功能。但是,由于我是一个文本AI模型,无法直接运行您的代码。不过,我可以为您提供一些修改建议和指导。
1. 导入库:确保您已经安装了所需的库。在您的代码中,您使用了 `pywinauto` 库和 `pygetwindow` 库来模拟按键和控制窗口。请确保这两个库已经正确安装。
2. 发送时间判断:在您的代码中,您使用 `time_now` 和 `sent_time` 来判断是否达到发送时间。然而,这两个变量的值在代码中都是相同的,即当前时间。您可能需要根据实际需求修改这部分逻辑,比如从外部读取一个指定的发送时间。
3. 打开微信:在您的代码中,您使用 `os.startfile(_app_dir)` 打开微信应用程序。请确保 `_app_dir` 变量包含了微信应用程序的正确路径。如果路径不正确或找不到微信应用程序,将会导致程序出错。
4. 模拟按键发送消息:在您的代码中,您使用了 `send_keys` 函数来模拟按键操作。请确保您正确导入了 `pywinauto.keyboard` 模块,并且函数调用的位置和方式正确。如果出现问题,可能需要检查库的版本兼容性或者尝试其他模拟按键的方法。
5. 退出程序:在您的代码中,您使用了 `exit()` 函数来退出程序。请确保您的代码中没有其他需要执行的代码或任务,否则可能会导致提前退出程序。
请注意,自动发送消息可能涉及到违反聊天软件的使用规定或者被视为垃圾消息。在使用自动发送消息功能时,请确保遵守相关法律法规和聊天软件的使用规定,并且尊重其他用户的权益和隐私。
希望这些建议对您有所帮助!如果您有任何进一步的问题,请随时提问。