我正在尝试搜索文本文件并检索包含一组特定单词的行.这是我正在使用的代码:
tyrs = subprocess.check_output('grep "^A" %s | grep TYR' % pocket_location, shell = True).split('\n')
Run Code Online (Sandbox Code Playgroud)
当文件包含grep标识的至少一行时,这可以正常工作.但是当grep没有标识任何行时,grep返回退出状态1并且我收到以下错误:
Traceback (most recent call last):
File "../../Python_scripts/cbs_wrapper2.py", line 324, in <module>
tyrs = subprocess.check_output('grep "^ATOM" %s | grep TYR' % pocket_location, shell = True).split('\n')
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 544, in check_output
raise CalledProcessError(retcode, cmd, output=output)
subprocess.CalledProcessError: Command 'grep "^ATOM" cbsPrediction_files/1u9c_clean/1u9c_clean_fpocket_out/pockets/pocket0_atm.pdb | grep TYR' returned non-zero exit status 1
Run Code Online (Sandbox Code Playgroud)
我该如何避免这个问题?subprocess.check_output如果grep找不到任何内容,我只想返回一个空字符串.
谢谢
如果我使用此代码
File.AppendAllText("C:/Users/Michael/Documents/Visual Studio 2010/Projects/PuzzleGame/PuzzleGame/PuzzleGameContent/player.TXT", "hi");
Run Code Online (Sandbox Code Playgroud)
该文件将保存并在其末尾添加"hi".但是,如果我做这样的事情:
File.AppendAllText("player.TXT", "what is good?");
Run Code Online (Sandbox Code Playgroud)
该文件没有"什么是好的?" 在它的最后.我只使用"player.TXT"文件名就能正常读取文件,但我不能只使用它来写入文件.谁能帮我?
这是我试图编写的代码:
class A(object):
def bind_foo(self):
old_foo = self.foo
def new_foo():
old_foo()
#super().foo()
super(self.__class__,self).foo()
self.foo = new_foo
def __init__(self):
print("A __init__")
def foo(self):
print("A foo")
class B(A):
def __init__(self):
print("B __init__")
super().__init__()
def foo(self):
print("B foo")
super().foo()
class C(A):
def __init__(self):
print("C __init__")
super().__init__()
super().bind_foo()
def foo(self):
print("C foo")
b = B()
b.foo()
c = C()
c.foo()
Run Code Online (Sandbox Code Playgroud)
B类和A类是预期的行为,也就是说,当我打电话时b.foo(),它a.foo()也会调用super().C类是试图模仿孩子B和父A行为,但这次我不想明确地super().foo()放在子类中,但我仍然想要父类foo()调用.它按预期工作.
然而,我不太明白的是A.bind_foo,我必须使用super(self.__class__,self).foo()而不是super().foo.super().foo给了一个
"SystemError: super(): no arguments". …Run Code Online (Sandbox Code Playgroud) 我在做一个方法
public static String merge(String... s)
Run Code Online (Sandbox Code Playgroud)
这是输入:
String a = merge("AM ","L","GEDS","ORATKRR","","R TRTE","IO","TGAUU");
System.out.println(a);
Run Code Online (Sandbox Code Playgroud)
预期输出:
ALGORITMER OG DATASTRUKTURER
Run Code Online (Sandbox Code Playgroud)
我尝试多次运行循环,以便它选取 s[0].charAt(index) 并将其附加到字符串以进行输出。我遇到的问题是,当我尝试运行 s[1].charAt(1) 的循环时,它为空,我希望它不会得到 StringIndexOutOfBoundsException,而是继续 s[2] 并附加 s[2]。字符到字符串。
我该怎么做?
所以,认为我们有两个向量,vec1和vec2.什么是仅对元素执行某些操作的最快方法,这两个元素都在两个向量中.到目前为止,我已经做到了这一点.简单地说,我们如何更快地实现这一目标,或者有什么办法:
vector<Test*> vec1;
vector<Test*> vec2;
//Fill both of the vectors, with vec1 containing all existing
//objects of Test, and vec2 containing some of them.
for (Test* test : vec1){
//Check if test is in vec2
if (std::find(vec2.begin(), vec2.end(), test) != vec2.end){
//Do some stuff
}
}
Run Code Online (Sandbox Code Playgroud) 我注意到在jdk源代码中,更具体地说,在集合框架中,在表达式中读取变量之前,首先要分配变量.这只是一个简单的偏好还是一些我不知道的更重要的东西?我能想到的一个原因是该变量仅在此表达式中使用.
由于我不熟悉这种风格,我觉得很难读懂.代码非常简洁.下面你可以看到一个例子java.util.HashMap.getNode()
Node<K,V>[] tab; Node<K,V> first, e; int n; K k;
if ((tab = table) != null && (n = tab.length) > 0 && ...) {
...
}
Run Code Online (Sandbox Code Playgroud) 例如,如果我有值,我会希望它去,例如:
0x0B -> "B"
0x10 -> "10"
Run Code Online (Sandbox Code Playgroud)
有一个简单的内置方法来做到这一点?
我试图通过多次调用方法来找到最精确的值.如何检查第n次迭代何时给出8位精度值.我的方法每次调用它时返回一个double,但是当结果有8位精度时我想停止调用它.
例如,如果我调用方法getValue()20次,并且在第20次它有一个8位数的答案,我该如何检查答案并停止代码?
我的方法太长,无法发布,所以一般的解释就足够了.
问题如下:
使用幂方法计算Leslie矩阵A的最大特征值.当您获得8位精度时,幂方法的迭代应该停止.Leslie矩阵模型可以写成
Run Code Online (Sandbox Code Playgroud)n(k + 1) = An(k), k = 0, 1, 2,... and with some n(0) given.
我试图绑定Visibility的LayoutAnchorableItem在视图模型一个布尔值,这样我可以以编程方式显示和隐藏锚定:
<UserControl.Resources>
<avalon:BoolToVisibilityConverter x:Key="btvc"/>
</UserControl.Resources>
<avalon:DockingManager>
<avalon:DockingManager.LayoutItemContainerStyleSelector>
<ws:WorkspaceStyleSelector>
<ws:WorkspaceStyleSelector.AnchorableStyle>
<Style TargetType="{x:Type avalon:LayoutAnchorableItem}">
<!-- ... -->
<Setter Property="Visibility" Value="{Binding Model.IsVisible, Converter={StaticResource btvc}, Mode=TwoWay}"/>
</Style>
</ws:WorkspaceStyleSelector.AnchorableStyle>
</ws:WorkspaceStyleSelector>
</avalon:DockingManager.LayoutItemContainerStyleSelector>
<!-- ... -->
</avalon:DockingManager>
Run Code Online (Sandbox Code Playgroud)
但是,每当我隐藏一个可锚定的时候,就抛出一个异常:
对象引用未设置为实例.
at Xceed.Wpf.AvalonDock.Layout.LayoutContent.Close() in ...\Xceed.Wpf.AvalonDock\Layout\LayoutContent.cs:line 346
at Xceed.Wpf.AvalonDock.Controls.LayoutItem.OnVisibilityChanged() in ...\Xceed.Wpf.AvalonDock\Controls\LayoutItem.cs:line 310
at Xceed.Wpf.AvalonDock.Controls.LayoutAnchorableItem.OnVisibilityChanged() in ...\Xceed.Wpf.AvalonDock\Controls\LayoutAnchorableItem.cs:line 299
at Xceed.Wpf.AvalonDock.Controls.LayoutItem.OnVisibilityChanged(DependencyObject s, DependencyPropertyChangedEventArgs e) in ...\Xceed.Wpf.AvalonDock\Controls\LayoutItem.cs:line 303
at Xceed.Wpf.AvalonDock.Controls.LayoutItem.<.cctor>b__1(DependencyObject s, DependencyPropertyChangedEventArgs e) in ...\Xceed.Wpf.AvalonDock\Controls\LayoutItem.cs:line 37
at System.Windows.PropertyChangedCallback.Invoke(DependencyObject d, DependencyPropertyChangedEventArgs e)
at System.Windows.DependencyObject.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
...
Run Code Online (Sandbox Code Playgroud)
在注释掉对可见性的绑定之后,可以按预期隐藏可锚定.
我目前正在使用 gcc 4.1.2 并且我有一个用例,我想使用链接器选项来包装退出方法。让我们立即将所有典型的回应/评论放在一边,“你为什么要这样做?”
我想知道的是,是否有可能做到这一点。我之前使用链接器包装了其他方法,没有任何问题。下面是我正在使用的 __wrap_exit 函数的快速示例:
void __wrap_exit(int _status)
{
return;
}
Run Code Online (Sandbox Code Playgroud)
当 exit 被调用时,这个包装器确实被调用了。但是,程序会在 __wrap_exit 返回后立即遇到分段错误。