Изменить строки в файле
Как с помощью регулярных выражений изменить разрешение в файле на разрешение экрана компьютера?
"video.cfg"
{
"Version" "0"
"VendorID" "4318"
"DeviceID" "7944"
"setting.cpu_level" "2"
"setting.mem_level" "2"
"setting.gpu_mem_level" "2"
"setting.defaultres" "1920"
"setting.defaultresheight" "1080"
"setting.gpu_level" "3"
"setting.version" "1"
"setting.knowndevice" "0"
"setting.refreshrate_numerator" "0"
"setting.refreshrate_denominator" "0"
"setting.fullscreen" "0"
"setting.coop_fullscreen" "0"
"setting.nowindowborder" "1"
"setting.mat_vsync" "0"
"setting.fullscreen_min_on_focus_loss" "1"
"setting.high_dpi" "0"
"setting.cl_particle_fallback_base" "0"
"setting.cl_particle_fallback_multiplier" "0"
"setting.dota_cheap_water" "0"
"setting.r_deferred_simple_light" "1"
"setting.r_ssao" "1"
"setting.cl_globallight_shadow_mode" "2"
"setting.r_dota_fxaa" "1"
"setting.r_deferred_additive_pass" "1"
"setting.r_deferred_specular_bloom" "1"
"setting.r_deferred_specular" "1"
"setting.r_texture_stream_mip_bias" "0"
"setting.r_dota_normal_maps" "1"
"setting.r_dashboard_render_quality" "1"
"setting.shaderquality" "1"
"setting.recommendedheight" "2160"
"setting.r_grass_quality" "2"
"setting.r_dota_allow_wind_on_trees" "1"
"setting.r_depth_of_field" "1"
"setting.mat_viewportscale" "1.000000"
}
Ответы (1 шт):
Автор решения: Max Watson
→ Ссылка
Вот так можно попробовтаь)
import re
import screeninfo
# Получить разрешение экрана компьютера
screen = screeninfo.get_monitors()[0]
screen_width = str(screen.width)
screen_height = str(screen.height)
# Открыть файл и прочитать его содержимое
with open("video.cfg", "r") as file:
file_content = file.read()
# Заменить значения разрешения в файле на значения разрешения экрана
file_content = re.sub(r'"setting.defaultres"\s+"(\d+)"', f'"setting.defaultres" "{screen_width}"', file_content)
file_content = re.sub(r'"setting.defaultresheight"\s+"(\d+)"', f'"setting.defaultresheight" "{screen_height}"', file_content)
# Записать измененное содержимое файла обратно в файл
with open("video.cfg", "w") as file:
file.write(file_content)