長さのpythonコードをもっとpythonicな方法で書き直すのに苦労しています。これが私が試したことです。最終的なコードをどのように見せたいかの例も含まれています
#!/usr/bin/env python
import time
import itertools
import os
freq = [2400000,2000000,1600000,1200000,800000]
freq_set = [
[ i for i in itertools.combinations(freq,1)],
[ i for i in itertools.combinations(freq,2)],
[ i for i in itertools.combinations(freq,3)],
[ i for i in itertools.combinations(freq,4)]
]
cores = [[0,4],[1,5],[2,6],[3,7]]
sets = [[0,4],[0,4,1,5],[0,4,1,5,2,6],[0,4,1,5,2,6,3,7]]
# 5 10 10 5 ; 1 3 5 7
for freq_set_val in range(0, len(freq_set)):
if freq_set_val == 0:
change = "echo "+ freq_set[freq_set_val][0] +"> /sys/devices/system/cpu/cpu"+ sets[freq_set_val][0] + "/cpufreq/scaling_setspeed"
change = "echo "+ freq_set[freq_set_val][0] +"> /sys/devices/system/cpu/cpu"+ sets[freq_set_val][1] + "/cpufreq/scaling_setspeed"
print "do something"
change = "echo "+ freq_set[freq_set_val][1] +"> /sys/devices/system/cpu/cpu"+ sets[freq_set_val][0] + "/cpufreq/scaling_setspeed"
change = "echo "+ freq_set[freq_set_val][1] +"> /sys/devices/system/cpu/cpu"+ sets[freq_set_val][1] + "/cpufreq/scaling_setspeed"
print "do something"
change = "echo "+ freq_set[freq_set_val][2] +"> /sys/devices/system/cpu/cpu"+ sets[freq_set_val][0] + "/cpufreq/scaling_setspeed"
change = "echo "+ freq_set[freq_set_val][2] +"> /sys/devices/system/cpu/cpu"+ sets[freq_set_val][1] + "/cpufreq/scaling_setspeed"
print "do something"
change = "echo "+ freq_set[freq_set_val][3] +"> /sys/devices/system/cpu/cpu"+ sets[freq_set_val][0] + "/cpufreq/scaling_setspeed"
change = "echo "+ freq_set[freq_set_val][3] +"> /sys/devices/system/cpu/cpu"+ sets[freq_set_val][1] + "/cpufreq/scaling_setspeed"
print "do something"
change = "echo "+ freq_set[freq_set_val][4] +"> /sys/devices/system/cpu/cpu"+ sets[freq_set_val][0] + "/cpufreq/scaling_setspeed"
change = "echo "+ freq_set[freq_set_val][4] +"> /sys/devices/system/cpu/cpu"+ sets[freq_set_val][1] + "/cpufreq/scaling_setspeed"
print "do something"
if freq_set_val == 1:
change = "echo "+ freq_set[freq_set_val][0] +"> /sys/devices/system/cpu/cpu"+ sets[freq_set_val][0] + "/cpufreq/scaling_setspeed"
change = "echo "+ freq_set[freq_set_val][0] +"> /sys/devices/system/cpu/cpu"+ sets[freq_set_val][1] + "/cpufreq/scaling_setspeed"
change = "echo "+ freq_set[freq_set_val][1] +"> /sys/devices/system/cpu/cpu"+ sets[freq_set_val][2] + "/cpufreq/scaling_setspeed"
change = "echo "+ freq_set[freq_set_val][1] +"> /sys/devices/system/cpu/cpu"+ sets[freq_set_val][3] + "/cpufreq/scaling_setspeed"
print "do something"
change = "echo "+ freq_set[freq_set_val][1] +"> /sys/devices/system/cpu/cpu"+ sets[freq_set_val][0] + "/cpufreq/scaling_setspeed"
change = "echo "+ freq_set[freq_set_val][1] +"> /sys/devices/system/cpu/cpu"+ sets[freq_set_val][1] + "/cpufreq/scaling_setspeed"
change = "echo "+ freq_set[freq_set_val][2] +"> /sys/devices/system/cpu/cpu"+ sets[freq_set_val][2] + "/cpufreq/scaling_setspeed"
change = "echo "+ freq_set[freq_set_val][2] +"> /sys/devices/system/cpu/cpu"+ sets[freq_set_val][3] + "/cpufreq/scaling_setspeed"
print "do something"
change = "echo "+ freq_set[freq_set_val][2] +"> /sys/devices/system/cpu/cpu"+ sets[freq_set_val][0] + "/cpufreq/scaling_setspeed"
change = "echo "+ freq_set[freq_set_val][2] +"> /sys/devices/system/cpu/cpu"+ sets[freq_set_val][1] + "/cpufreq/scaling_setspeed"
change = "echo "+ freq_set[freq_set_val][3] +"> /sys/devices/system/cpu/cpu"+ sets[freq_set_val][2] + "/cpufreq/scaling_setspeed"
change = "echo "+ freq_set[freq_set_val][3] +"> /sys/devices/system/cpu/cpu"+ sets[freq_set_val][3] + "/cpufreq/scaling_setspeed"
print "do something"
print "so onn"
if freq_set_val == 2:
change = "echo "+ freq_set[freq_set_val][0] +"> /sys/devices/system/cpu/cpu"+ sets[freq_set_val][0] + "/cpufreq/scaling_setspeed"
change = "echo "+ freq_set[freq_set_val][0] +"> /sys/devices/system/cpu/cpu"+ sets[freq_set_val][1] + "/cpufreq/scaling_setspeed"
change = "echo "+ freq_set[freq_set_val][1] +"> /sys/devices/system/cpu/cpu"+ sets[freq_set_val][2] + "/cpufreq/scaling_setspeed"
change = "echo "+ freq_set[freq_set_val][1] +"> /sys/devices/system/cpu/cpu"+ sets[freq_set_val][3] + "/cpufreq/scaling_setspeed"
change = "echo "+ freq_set[freq_set_val][2] +"> /sys/devices/system/cpu/cpu"+ sets[freq_set_val][4] + "/cpufreq/scaling_setspeed"
change = "echo "+ freq_set[freq_set_val][2] +"> /sys/devices/system/cpu/cpu"+ sets[freq_set_val][5] + "/cpufreq/scaling_setspeed"
print "do something"
基本的に、特定の周波数レベルで一連のコアを反転させ続けたいと考えています。だから、すべてのchange
声明の後。私は書くだろうos.system(change)
ここで私を助けてくれませんか?また、シェルを使用して同じことを実装しようとしました。itertools
しかし、問題はパッケージがないことです。title of question
言い方がわからなかったので自由に変えてください。
これが今の様子です。きれいなバージョンは常に優れています:)しかし、私はそれを強化する方法を知りませんでした
for freq_set_val in range(0, len(freq_set)):
if freq_set_val == 0:
for freq in range(0, len(freq_set[freq_set_val])):
for val in range(0, len(freq_set[freq_set_val][freq])):
change = "echo "+ str(freq_set[freq_set_val][freq][val]) +"> /sys/devices/system/cpu/cpu"+ str(sets[freq_set_val][0]) + "/cpufreq/scaling_setspeed"
change = "echo "+ str(freq_set[freq_set_val][freq][val]) +"> /sys/devices/system/cpu/cpu"+ str(sets[freq_set_val][1]) + "/cpufreq/scaling_setspeed"
print "do something"
if freq_set_val == 1:
for freq in range(0, len(freq_set[freq_set_val])):
change = "echo "+ str(freq_set[freq_set_val][freq][0]) +"> /sys/devices/system/cpu/cpu"+ str(sets[freq_set_val][0]) + "/cpufreq/scaling_setspeed"
change = "echo "+ str(freq_set[freq_set_val][freq][0]) +"> /sys/devices/system/cpu/cpu"+ str(sets[freq_set_val][1]) + "/cpufreq/scaling_setspeed"
change = "echo "+ str(freq_set[freq_set_val][freq][1]) +"> /sys/devices/system/cpu/cpu"+ str(sets[freq_set_val][2]) + "/cpufreq/scaling_setspeed"
change = "echo "+ str(freq_set[freq_set_val][freq][1]) +"> /sys/devices/system/cpu/cpu"+ str(sets[freq_set_val][3]) + "/cpufreq/scaling_setspeed"
print "do something"
if freq_set_val == 2:
for freq in range(0, len(freq_set[freq_set_val])):
change = "echo "+ str(freq_set[freq_set_val][freq][0]) +"> /sys/devices/system/cpu/cpu"+ str(sets[freq_set_val][0]) + "/cpufreq/scaling_setspeed"
change = "echo "+ str(freq_set[freq_set_val][freq][0]) +"> /sys/devices/system/cpu/cpu"+ str(sets[freq_set_val][1]) + "/cpufreq/scaling_setspeed"
change = "echo "+ str(freq_set[freq_set_val][freq][1]) +"> /sys/devices/system/cpu/cpu"+ str(sets[freq_set_val][2]) + "/cpufreq/scaling_setspeed"
change = "echo "+ str(freq_set[freq_set_val][freq][1]) +"> /sys/devices/system/cpu/cpu"+ str(sets[freq_set_val][3]) + "/cpufreq/scaling_setspeed"
change = "echo "+ str(freq_set[freq_set_val][freq][2]) +"> /sys/devices/system/cpu/cpu"+ str(sets[freq_set_val][4]) + "/cpufreq/scaling_setspeed"
change = "echo "+ str(freq_set[freq_set_val][freq][2]) +"> /sys/devices/system/cpu/cpu"+ str(sets[freq_set_val][5]) + "/cpufreq/scaling_setspeed"
print "do something"
if freq_set_val == 3:
for freq in range(0, len(freq_set[freq_set_val])):
change = "echo "+ str(freq_set[freq_set_val][freq][0]) +"> /sys/devices/system/cpu/cpu"+ str(sets[freq_set_val][0]) + "/cpufreq/scaling_setspeed"
change = "echo "+ str(freq_set[freq_set_val][freq][0]) +"> /sys/devices/system/cpu/cpu"+ str(sets[freq_set_val][1]) + "/cpufreq/scaling_setspeed"
change = "echo "+ str(freq_set[freq_set_val][freq][1]) +"> /sys/devices/system/cpu/cpu"+ str(sets[freq_set_val][2]) + "/cpufreq/scaling_setspeed"
change = "echo "+ str(freq_set[freq_set_val][freq][1]) +"> /sys/devices/system/cpu/cpu"+ str(sets[freq_set_val][3]) + "/cpufreq/scaling_setspeed"
change = "echo "+ str(freq_set[freq_set_val][freq][2]) +"> /sys/devices/system/cpu/cpu"+ str(sets[freq_set_val][4]) + "/cpufreq/scaling_setspeed"
change = "echo "+ str(freq_set[freq_set_val][freq][2]) +"> /sys/devices/system/cpu/cpu"+ str(sets[freq_set_val][5]) + "/cpufreq/scaling_setspeed"
change = "echo "+ str(freq_set[freq_set_val][freq][3]) +"> /sys/devices/system/cpu/cpu"+ str(sets[freq_set_val][6]) + "/cpufreq/scaling_setspeed"
change = "echo "+ str(freq_set[freq_set_val][freq][3]) +"> /sys/devices/system/cpu/cpu"+ str(sets[freq_set_val][7]) + "/cpufreq/scaling_setspeed"
print "do something"