我正在寻找一种在Windows中以低优先级有效启动多个进程的方法.我试过了 :
def run(command):
# command['Program.exe args1 args2','output_file']
try :
p = subprocess.Popen(command[0] , stdout = command[1])
psutil.Process(p.pid).nice(psutil.BELOW_NORMAL_PRIORITY_CLASS)
p.wait()
except Exception as e:
print(e)
raise SystemExit
Run Code Online (Sandbox Code Playgroud)
问题是:低优先级不会立即设置.我开始时会冻结一些.当我仔细观察过程窗口时,我可以看到应用程序的优先级从high_priority开始并切换到low_priority.
我想立即以低优先级启动或找到另一种方法来阻止CPU使用率(现在100%).
然后我在多处理池中使用run命令(每次运行几秒钟).
def safe_run(args):
"""Call run(), catch exceptions."""
try:
run(args)
except Exception as e:
print(args[0])
print(e)
def parallel(commands,nb_proc):
# populate files
# start processes
if len(commands) < 10:
nb_proc = 1
print('Use of {} cpus\n'.format(nb_proc))
pool = mp.Pool(nb_proc)
pool.map(safe_run, commands, chunksize=1)
Run Code Online (Sandbox Code Playgroud)
UPDATE
Test.exe是一个fortran代码:
integer function NumArguments()
integer :: IARGC
NumArguments = IARGC()
end …Run Code Online (Sandbox Code Playgroud) 感谢panda,我们可以使用“read_excel”函数将整张表读入数据框。
我想使用 xlwings 使用相同的方法。事实上,我的工作簿已经打开,我不想使用 read_excel 函数(顺便说一下,女巫执行时间太长)而是使用 xlwings 的强大功能将整个工作表保存到数据帧中。
事实上,使用 xlwings 我们可以将一个范围保存到一个数据帧中。这意味着我必须知道范围大小。但我想有更好(更快!)的方法来做到这一点,不是吗?
你有这样做的想法吗?非常感谢 !
编辑:我想将一张工作表的一个例子转移到一个数据帧中,因为 read_excel 会这样做。
Name Point Time Power Test1 Test2 Test3 Test4 ##
Test 0 1 10 4 24 144
2 20 8 48 288
3 30 12 72 432
4 40 16 96 576
5 50 20 120 720
6 60 24 144 864
7 70 28 168 1008
8 80 32 192 1152
9 90 36 216 1296
10 100 40 240 1440
11 110 44 …Run Code Online (Sandbox Code Playgroud) 我想删除pandas DataFrame中不在列表中的所有行
例如,考虑这个数据帧:
data = {'name': ['Jason', 'Molly', 'Tina', 'Jake', 'Amy'],
'year': [2012, 2012, 2013, 2014, 2014],
'reports': [4, 24, 31, 2, 3]}
df = pd.DataFrame(data, index = ['Cochice', 'Pima', 'Santa Cruz', 'Maricopa', 'Yuma'])
df
Run Code Online (Sandbox Code Playgroud)
要按名称删除一行,这很容易:
df = df[df.name != 'Tina'] # to drop the row which include Tina in the name column
Run Code Online (Sandbox Code Playgroud)
但如果我只想保留Jason和Molly这一行:
List=['Jason', 'Molly']
df = df[df.name not in List]
Run Code Online (Sandbox Code Playgroud)
不起作用!