为什么我不能在打开的文件上调用read()两次?

对于我正在做的练习,我试图用read()方法read()给定文件的内容两次。 奇怪的是,当我第二次调用它,它似乎并没有返回文件内容作为一个string? 这是代码 f = f.open() # get the year match = re.search(r'Popularity in (\d+)', f.read()) if match: print match.group(1) # get all the names matches = re.findall(r'<td>(\d+)</td><td>(\w+)</td><td>(\w+)</td>', f.read()) if matches: # matches is always None 当然,我知道这不是最有效或最好的方式,这不是重点。 关键是,为什么我不能调用read()两次? 我必须重置文件句柄吗? 或closures/重新打开文件,以此来做到这一点?

为什么“导入*”不好?

build议不要在Python中使用import * 。 任何人都可以请分享这个原因,这样我可以避免下一次做?

C#中variables名中@字符的用法/含义是什么?

我发现你可以用C#中的“@”字符来启动你的variables名。 在我的C#项目中,我使用的是用Java编写的Web服务(我添加了对我的项目的Web引用)。 WSDL中定义的一个接口对象有一个名为“params”的成员variables。 显然,这是C#中的一个保留字,所以你不能拥有一个名为“params”的成员variables。 生成的代理对象包含一个如下所示的属性: public ArrayList @params { get { return this.paramsField; } set { this.paramsField = value; } } 我search了VS 2008的c#文档,但无法find任何有关它。 也search谷歌没有给我任何有用的答案。 那么variables/属性名称中“@”字符的确切含义或用法是什么?

只有插入一行,如果它不在那里

我一直使用类似于以下的东西来实现它: INSERT INTO TheTable SELECT @primaryKey, @value1, @value2 WHERE NOT EXISTS (SELECT NULL FROM TheTable WHERE PrimaryKey = @primaryKey) …但是一旦发生负载,就会发生主键违例。 这是根本插入这张桌子的唯一声明。 那么这是否意味着上述说法不是primefaces的? 问题是这几乎不可能随意重新创build。 也许我可以把它改成如下的东西: INSERT INTO TheTable WITH (HOLDLOCK, UPDLOCK, ROWLOCK) SELECT @primaryKey, @value1, @value2 WHERE NOT EXISTS (SELECT NULL FROM TheTable WITH (HOLDLOCK, UPDLOCK, ROWLOCK) WHERE PrimaryKey = @primaryKey) 虽然,也许我正在使用错误的锁或使用太多的锁或什么的。 我已经看到了stackoverflow.com上的其他问题,其中答案是build议“IF(SELECT COUNT(*)… INSERT”等,但我总是在(也许是不正确的)假设一个单一的SQL语句将primefaces。 有没有人有任何想法?

正则expression式来select引号之外的逗号

我不太确定这是否可能,所以我转向你。 我想find一个正则expression式来挑选所有不在报价集之外的逗号。 例如: 'foo' => 'bar', 'foofoo' => 'bar,bar' 这会在第一行挑出单个逗号,在'bar', 我并不关心单双引号。 有没有人有任何想法? 我觉得应该可以用readaheads,但是我的正则expression式太弱了。

在while循环中修改的variables不被记住

在下面的程序中,如果我在第一个if语句中将variables$foo设置为值1,它的作用就是在if语句之后记住它的值。 然而,当我设置相同的variables值为2, if这是一个while语句内,它被遗忘后的while循环。 它的行为就像我在while循环中使用某种variables$foo的副本,我只修改那个特定的副本。 这是一个完整的testing程序: #!/bin/bash set -e set -u foo=0 bar="hello" if [[ "$bar" == "hello" ]] then foo=1 echo "Setting \$foo to 1: $foo" fi echo "Variable \$foo after if statement: $foo" lines="first line\nsecond line\nthird line" echo -e $lines | while read line do if [[ "$line" == "second line" ]] then foo=2 […]

如何获取特定types(button/文本框)的Windows窗体窗体的所有子控件?

我需要获得一个types为x的表单上的所有控件。 我很确定我在过去曾经看到过这样的代码: dim ctrls() as Control ctrls = Me.Controls(GetType(TextBox)) 我知道我可以遍历所有使用recursion函数获取子项的控件,但有没有更容易或更直接的,可能如下所示? Dim Ctrls = From ctrl In Me.Controls Where ctrl.GetType Is Textbox

允许php会话继续到子域

我使用PHP会话(不是cookie,除了会话ID cookie)为所有的用户数据,当用户转到他们的个人资料user.mydomain.com他们立即“注销”,直到删除子域。 有没有办法接受来自所有域的会话,只要它的* .mydomain.com

函数声明与原型的替代(K&R)C语法

这个C语法有什么用处 – 使用'K&R'样式函数声明? int func (p, p2) void *p; int p2; { return 0; } 我能够在Visual Studios 2010beta中编写这个 //yes the params are flipped void f() { void *v=0; func(5,v); } 我不明白。 这个语法有什么意义? 我可以写: int func (p, p2) int p2; { return 0; } //and write int func (p, p2) { return 0; } 它似乎指定的唯一的事情是它使用了多less个参数和返回types。 我猜没有types的参数是有点酷,但为什么允许它和函数声明后的int […]

如何在Java中使用Javastring?

我正在使用Java处理一些Java源代码。 我正在提取string文字并将它们提供给一个带有String的函数。 问题是我需要将非转义版本的string传递给函数(即,这意味着将\n转换为换行符, \\转换为单个\等)。 Java API中是否有这样的函数? 如果没有,我可以从某个图书馆获得这样的function吗? Java编译器显然需要做这个转换。 PS – 如果有人想知道:我试图在反编译的混淆Java文件中unobfuscatestring文字