问题列表 - 第3511页

有没有内置的方法来获取python中迭代的长度?

例如,Python中的文件是可迭代的 - 它们遍历文件中的行.我想计算行数.

一个快速的方法是这样做:

lines = len(list(open(fname)))
Run Code Online (Sandbox Code Playgroud)

但是,这会将整个文件加载到内存中(一次).这相当违背了迭代器的目的(它只需要将当前行保留在内存中).

这不起作用:

lines = len(line for line in open(fname))
Run Code Online (Sandbox Code Playgroud)

因为发电机没有长度.

有没有办法做到这一点,没有定义计数功能?

def count(i):
    c = 0
    for el in i: c += 1
    return c
Run Code Online (Sandbox Code Playgroud)

编辑:澄清,我明白整个文件必须阅读!我只是不想在内存中一次性=).

python iterator

47
推荐指数
6
解决办法
2万
查看次数

WiX生成的MSI未压缩

我使用WiX3生成MSI安装包.我在<Package><Media>元素中都指定了压缩标志:

<Package InstallerVersion="200" Compressed="yes"/>
<Media Id="1" Cabinet="MySetup.cab" EmbedCab="yes" CompressionLevel="high" />
Run Code Online (Sandbox Code Playgroud)

但是得到的MSI根本没有压缩--WinZip将它从2M压缩到600K.

我错过了什么吗?

我正在使用VS2008 btw.

compression windows-installer wix visual-studio-2008

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

如何调试参数化的SQL查询

我使用C#建立数据库连接,然后使用临时SQL获取数据。这个简单的SQL查询非常易于调试,因为我可以记录SQL查询字符串。如果我使用参数化的SQL查询命令,是否有任何方法可以记录SQL查询字符串以进行调试?

c# sql

4
推荐指数
2
解决办法
4119
查看次数

手动安装Ruby 1.8.7(和其他东西)

我不想再依赖单击安装程序了,我想学习如何手动安装Ruby.这有资源吗?

ruby windows install

15
推荐指数
1
解决办法
2万
查看次数

运算符==不能应用于C#中的泛型类型吗?

根据MSDN中==运营商的文档,

对于预定义的值类型,如果操作数的值相等,则相等运算符(==)返回true,否则返回false.对于除string之外的引用类型,如果其两个操作数引用同一对象,则==返回true.对于字符串类型,==比较字符串的值.用户定义的值类型可以重载==运算符(请参阅运算符).用户定义的引用类型也是如此,尽管 默认情况下==的行为与上述预定义和用户定义的引用类型相同.

那么为什么这段代码片段无法编译呢?

bool Compare<T>(T x, T y) { return x == y; }
Run Code Online (Sandbox Code Playgroud)

我得到错误运算符'=='不能应用于'T'和'T'类型的操作数.我想知道为什么,因为据我所知,==运算符是针对所有类型预定义的?

编辑:谢谢大家.起初我没有注意到该声明仅涉及引用类型.我还认为为所有值类型提供了逐位比较,我现在知道这是正确的.

但是,如果我使用引用类型,==操作符是否会使用预定义的引用比较,或者如果类型定义了一个,它是否会使用运算符的重载版本?

编辑2:通过反复试验,我们了解到==操作员在使用不受限制的泛型类型时将使用预定义的参考比较.实际上,编译器将使用它可以为限制类型参数找到的最佳方法,但不会再看了.例如,true即使Test.test<B>(new B(), new B())被调用,下面的代码也会始终打印:

class A { public static bool operator==(A x, A y) { return true; } }
class B : A { public static bool operator==(B x, B y) { return false; } }
class Test { void test<T>(T a, T …
Run Code Online (Sandbox Code Playgroud)

c# generics operators equals-operator

309
推荐指数
10
解决办法
10万
查看次数

使用角色的asp.net mvc授权

我正在创建一个具有用户概念的asp.net mvc应用程序.每个用户都可以编辑自己的个人资料.例如:

没有什么特别令人兴奋的......

但是,我在授权方案中遇到了一些麻烦.现在系统中只有两个角色,"管理员"和"默认用户",但将来可能会有更多.

我无法使用常规Authorize属性来指定授权,因为两个用户都处于相同的角色(即"DefaultUser").

所以,如果我像这样指定授权过滤器:

[Authorize(Roles = "DefaultUser")]
Run Code Online (Sandbox Code Playgroud)

那就没有效果了.PersonID = 1可以进入并编辑自己的配置文件(因为它们应该可以),但是他们也可以将URL更改为http:// localhost/person/edit/2,并且他们具有编辑PersonID = 2的完全访问权限.配置文件(他们不应该这样做).

这是否意味着我必须创建自己的授权过滤器,在允许用户访问之前检查用户请求的操作是否"属于"他们?也就是说,如果当前登录的人正在请求参数= 1的编辑操作,是否需要进行自定义检查以确保当前登录的人员是PersonID = 1,如果是,则授权他们,如果没有,拒绝访问?

感觉我在这里遗漏了一些明显的东西,所以任何指导都会受到赞赏.

asp.net-mvc authorization

24
推荐指数
4
解决办法
4万
查看次数

在PHP中声明变量类型?

我试图让我的Netbeans用PHP自动完成,我了解到这段代码在PHP中是有效的:

function blah(Bur $bur) {}
Run Code Online (Sandbox Code Playgroud)

几个问题:

  1. 这实际上对我可以传递给blah方法的变量类型施加了任何限制吗?
  2. 如果这只是为了帮助IDE,那对我没问题.如果我不在函数中,如何在PHP中声明变量的类型?

php variable-types

47
推荐指数
4
解决办法
8万
查看次数

如何通过网络在私人应用程序之间进行私人通讯?

它基本上是一个安装在多台PC上的应用程序,每个安装都维护着它自己的数据库,当它们同时启动时(同时连接到同一网络),它与其他数据库同步.

我已经使用简单的套接字连接和自定义缓冲区对此进行了测试,但是希望使应用程序之间的通信符合公认的标准并且还要安全/健壮,而不是试图重新发明轮子.

这个应用程序到应用程序通信的正常/标准方式是什么?我在哪里可以找到更多信息?

此外,还有/可以使用哪些技术来宣传和查找网络上的其他应用程序?


编辑:(提炼我的问题)

下面的gimel指向的pub/sub模型似乎与我需要的一致.然而,它涵盖了很多方面,我真的不知道从这一切中拿走和使用什么.

看起来我需要在两个或更多应用程序找到彼此后建立P2P连接 - 我该怎么做?

如果有可用的示例/教程,请指出它们.实现类似我需要的东西的小型开源项目/模块也将提供服务.

我选择的平台是Linux,但基于Windows的示例也非常实用.


编辑[09-01-06]:

我目前正在查看以下选项:

  1. 多播(TLDP-Howto) - 这似乎可行,但我需要更多地研究它.
  2. 使用免费的动态DNS服务器,虽然这看起来有点冒险......
  3. 使用一些免费的电子邮件工具,例如gmail/yahoo/...,并从那里发送/读取邮件以查找其他应用程序的IP(可以工作,但感觉很脏)
  4. 建议使用webservices,但我不知道它们是如何工作的,并且必须对它进行研究

我很感激您对这些选项的看法以及是否有任何示例.遗憾的是,我没有选择使用中央服务器或网站(除非可以保证免费和永久).

[编辑2009-02-19]

(希望我能接受两个/三个答案!我接受的那个答案因为它提供了思路和可能性,而其他人则提供了固定但适用的解决方案.感谢所有回答的人,所有这些都有帮助.)

当我找到/实现我的解决方案时,我将更新这个问题,如果解决方案足够,我将为它创建一个sourceforge项目.(无论如何,这是一个更大的项目中的一个小问题.)

security networking communication private

2
推荐指数
1
解决办法
849
查看次数

确定Oracle中具有最大行数的表

我在Oracle中有一组表,我想识别包含最大行数的表.

因此,如果A有200行,B有345行,C有120行,我希望能够识别表B.

有没有一个简单的查询我可以运行来实现这一目标?

编辑:有100多个表,所以我正在寻找通用的东西.

oracle plsql

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

如何使用STL字符串和流读取/存储unicode

我需要修改我的程序以接受Unicode,这可能来自任何UTF-8和各种UTF-16和UTF-32编码.我对Unicode知之甚少(虽然我读过Joel Spolsky的文章维基百科页面).

现在,我使用的是std::istream和阅读我的输入char通过char,然后存储(必要时)在std::string.我想

  • 修改这个(用很少的努力)来支持上面的编码,和
  • 弄清楚如何测试上面的编码(我有点像白面包美国人,并且真的不知道如何用另一种编码制作样本文本文件),理想情况下
  • 以跨平台的方式做到这一点.

另外,如果可能的话,我想尽可能地节省空间(所以如果我们不需要超过一个字节/字符,我们就不会使用它).根据我的理解,这意味着存储在UTF-8中,这很好,但我不知道这样做的标准字符串(根据我的理解,wchar_t具有实现定义的大小和编码).

c++ string unicode stl stream

9
推荐指数
1
解决办法
4294
查看次数