帮我写一个python程序:检测G:\LXQ\keyan\auto_download_OI\Temp\input_s3a文件夹下最新文件的时间,若与现在的时间相差两个小时,则停止运行G:\LXQ\keyan\OI_code230417文件夹下的OI_LYYH.py程序,并将OI_LYYH.py程序中的第61行根据G:\LXQ\keyan\auto_download_OI\Temp\input_s3a文件夹下的第一个文件的文件名来修改,保存后重新运行
时间: 2023-07-21 21:02:32 浏览: 105
下面是一个示例的 Python 程序,可以实现你所描述的功能:
```python
import os
import time
import shutil
input_folder = r'G:\LXQ\keyan\auto_download_OI\Temp\input_s3a'
oi_code_folder = r'G:\LXQ\keyan\OI_code230417'
oi_lyyh_file = 'OI_LYYH.py'
# 获取文件夹中最新文件的时间
def get_latest_file_time(folder):
files = os.listdir(folder)
if files:
files = [os.path.join(folder, f) for f in files]
latest_file = max(files, key=os.path.getmtime)
return os.path.getmtime(latest_file)
return None
# 修改OI_LYYH.py文件的第61行
def modify_oi_lyyh_file(line_content):
oi_lyyh_path = os.path.join(oi_code_folder, oi_lyyh_file)
with open(oi_lyyh_path, 'r') as file:
lines = file.readlines()
lines[60] = line_content + '\n'
with open(oi_lyyh_path, 'w') as file:
file.writelines(lines)
# 停止运行OI_LYYH.py程序
def stop_oi_lyyh_program():
os.system('taskkill /F /IM python.exe /T')
# 重新运行OI_LYYH.py程序
def run_oi_lyyh_program():
oi_lyyh_path = os.path.join(oi_code_folder, oi_lyyh_file)
os.system(f'python {oi_lyyh_path}')
# 检测文件时间,并执行相应操作
def check_file_time():
latest_file_time = get_latest_file_time(input_folder)
if latest_file_time:
current_time = time.time()
time_diff = current_time - latest_file_time
if time_diff >= 2 * 3600: # 相差两个小时
stop_oi_lyyh_program()
first_file_name = os.listdir(input_folder)[0]
modify_oi_lyyh_file(f'filename = "{first_file_name}"')
run_oi_lyyh_program()
check_file_time()
```
请确保你已经将 `input_folder` 和 `oi_code_folder` 更改为你实际的文件夹路径。这个程序会检测指定文件夹下最新文件的时间,如果与当前时间相差两个小时以上,就会停止运行 `OI_LYYH.py` 程序,并根据文件夹中的第一个文件名修改 `OI_LYYH.py` 文件的第61行内容,然后重新运行 `OI_LYYH.py` 程序。
阅读全文