小编Ale*_*eev的帖子

如何在Eclipse中搜索光标下的字符串

在vim中,按下*命令模式会自动搜索光标下的单词.如何在Eclipse中获得相同的内容?

eclipse keyboard-shortcuts

11
推荐指数
2
解决办法
3784
查看次数

如何以python方式检查长时间运行的函数?

计算科学中的典型情况是有一个连续运行数天/数周/数月的程序。由于硬件/操作系统故障是不可避免的,因此通常使用检查点,即不时保存程序的状态。如果失败,则从最新的检查点重新启动。

实现检查点的pythonic方法是什么?

例如,可以直接转储函数的变量。

或者,我正在考虑将此类函数转换为一个类(见下文)。函数的参数将成为构造函数的参数。构成算法状态的中间数据将成为类属性。和pickle模块将帮助(缩小)序列化。

import pickle

# The file with checkpointing data
chkpt_fname = 'pickle.checkpoint'

class Factorial:
    def __init__(self, n):
        # Arguments of the algorithm
        self.n = n

        # Intermediate data (state of the algorithm)
        self.prod = 1
        self.begin = 0

    def get(self, need_restart):
        # Last time the function crashed. Need to restore the state.
        if need_restart:
            with open(chkpt_fname, 'rb') as f:
                self = pickle.load(f)

        for i in range(self.begin, self.n):
            # Some computations
            self.prod *= (i + …
Run Code Online (Sandbox Code Playgroud)

python pickle checkpointing

11
推荐指数
1
解决办法
6323
查看次数

JPA - 保存更改而不调用persist()

我们正在使用JPA + Spring + EJB的Toplink实现.在我们的一个EJB中,我们有这样的东西:

public void updateUser(long userId, String newName){
    User u = em.get(User.class, userId);
    u.setName(newName);
    // no persist is invoked here
}
Run Code Online (Sandbox Code Playgroud)

所以,基本上这个updateUser方法应该更新给定id的用户名.但是这个方法的作者忘了调用em.persist(u);

而最奇怪的是它运作良好.怎么会这样?我100%肯定,如果不调用em.persist()或em.merge(),就无法将更改保存到数据库中.他们可以吗?有可能发生这种情况吗?

谢谢

jpa persist toplink-essentials

10
推荐指数
1
解决办法
6113
查看次数

GDB - 如何从一开始就进入步进模式

通常,要从C++程序执行的最开始进入步进模式,就可以break main在GDB中使用命令.但这只会在入口处打破程序main().

问题是如何在第一个用户编写的操作(例如,静态定义的类实例的构造函数)上中断程序?

例如,如果我有以下代码,如何在A()不使用break 5命令的情况下中断?

#include <iostream>

struct A {
    A() {
        std::cout << "A()" << std::endl;
    }
};

static A a;

int main() {
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

更新:实际上,我调试了其他人编写的非常大的代码.代码中有许多分散在不同源文件中的静态类实例.在每个构造函数上手动设置断点是不可行的.

c++ debugging gdb

7
推荐指数
1
解决办法
1472
查看次数

将压缩的提交从主分支合并到功能分支时避免 git 中的冲突

考虑以下做法:

  • 开发人员从main功能分支中分支并根据需要创建尽可能多的提交
  • 一旦功能完成,所有提交都会被压缩并合并到分支中main(例如,想想 GitHub 的“压缩并合并”按钮)

现在这是我感兴趣的一个用例:

  1. feature1创建分支并在分支上工作
  2. feature2从分支的最后一次提交开始创建一个分支feature1(参见C下图中的提交)
  3. 挤压并合并feature1main(参见提交G
  4. 将这个新创建的提交合并到分支Gfeature2
  5. feature2继续在分支工作

换句话说,第 4 步中合并Gfeature2分支中的操作如下所示:

user@host:~/repo (main)$ git checkout feature2
user@host:~/repo (feature2)$ git merge main     # merge G into feature2
Run Code Online (Sandbox Code Playgroud)

压缩和合并后合并冲突

通常,这种合并(请参阅提交H)会导致许多合并冲突。

如何彻底消除这些矛盾呢?

我能想到的最简单的解决方案如下(见下图):

user@host:~/repo (main)$ git checkout feature1
user@host:~/repo (feature1)$ git merge main         # merge G into feature1; essentially, an empty commit
user@host:~/repo (feature1)$ git …
Run Code Online (Sandbox Code Playgroud)

git git-merge branching-and-merging git-squash git-merge-conflict

7
推荐指数
1
解决办法
1062
查看次数

如何在熊猫中使用read_fwf跳过空白行?

pandas.read_fwf()在Python pandas 0.19.2中使用function来读取fwf.txt具有以下内容的文件:

# Column1 Column2
      123     abc

      456     def

#
#
Run Code Online (Sandbox Code Playgroud)

我的代码如下:

import pandas as pd
file_path = "fwf.txt"
widths = [len("# Column1"), len(" Column2")]
names = ["Column1", "Column2"]
data = pd.read_fwf(filepath_or_buffer=file_path, widths=widths, 
                   names=names, skip_blank_lines=True, comment="#")
Run Code Online (Sandbox Code Playgroud)

打印的数据框是这样的:

    Column1 Column2
0   123.0   abc
1   NaN     NaN
2   456.0   def
3   NaN     NaN
Run Code Online (Sandbox Code Playgroud)

看起来skip_blank_lines=True参数被忽略了,因为数据帧包含NaN。

pandas.read_fwf()确保跳过空白行的参数的有效组合应该是什么?

python pandas

5
推荐指数
1
解决办法
584
查看次数

如何在eclipse中一次性禁用所有工作区的新闻轮询?

我在日食工作,有很多工作空间.我必须微调每个工作区,禁用恼人的新闻弹出窗口.我使用eclipse作为IDE,我有另外的应用程序来阅读新闻.

有没有办法将禁用的新闻轮询传播到所有工作区?或者将此设置设为全局?

eclipse

5
推荐指数
1
解决办法
3812
查看次数

如何在 Watson Studio 中使用 pandas read_csv 读取压缩的 csv 文件?

要在本地 Jupyter 笔记本中读取带有 pandas 的 zip 压缩 csv 文件,我执行:

import pandas as pd
pd.read_csv('csv_file.zip')
Run Code Online (Sandbox Code Playgroud)

但是,在 Watson Studio 中,read_csv()当我用云对象存储流对象替换文件名时,会引发异常。

这是 Watson Studio 中我的笔记本的第一个单元格:

import types
from ibm_botocore.client import Config
import ibm_boto3

def __iter__(self): return 0

client = ibm_boto3.client(service_name='s3', ibm_api_key_id='...',
    ibm_auth_endpoint="...", config=Config(signature_version='oauth'),
    endpoint_url='...')

body = client.get_object(Bucket='...', Key='csv_file.zip')['Body']
if not hasattr(body, "__iter__"):
    body.__iter__ = types.MethodType( __iter__, body )
Run Code Online (Sandbox Code Playgroud)

现在,当我尝试时:

import pandas as pd
df = pd.read_csv(body)
Run Code Online (Sandbox Code Playgroud)

我得到:

'utf-8' codec can't decode byte 0xbb in position 0: invalid start byte
Run Code Online (Sandbox Code Playgroud)

如果我指定compression='zip' …

python zip dataframe pandas watson-studio

0
推荐指数
1
解决办法
1763
查看次数