我需要通过Python中的http下载几个文件.
最明显的方法是使用urllib2:
import urllib2
u = urllib2.urlopen('http://server.com/file.html')
localFile = open('file.html', 'w')
localFile.write(u.read())
localFile.close()
Run Code Online (Sandbox Code Playgroud)
但我必须以某种方式处理那些令人讨厌的网址,比如说:http://server.com/!Run.aspx/someoddtext/somemore?id=121&m=pdf.通过浏览器下载时,该文件具有可读的名称,即.accounts.pdf.
有没有办法在python中处理它,所以我不需要知道文件名并将它们硬编码到我的脚本中?
我正在实现一个TryParse(字符串s,Out对象结果)方法.如果解析失败,我不想触摸out参数,因此任何先前的结果将保持不变.但VS2k8不会让我.无论如何,我必须设置out对象的值.
我是否应该为了取悦编译器而放置result = result?我错过了什么吗?
我们的域模型中有许多不可变值对象,其中一个例子是位置,由纬度,经度和高度定义.
/// <remarks>When I grow up I want to be an F# record.</remarks>
public class Position
{
public double Latitude
{
get;
private set;
}
// snip
public Position(double latitude, double longitude, double height)
{
Latitude = latitude;
// snip
}
}
Run Code Online (Sandbox Code Playgroud)
允许编辑位置的显而易见的方法是构建具有getter 和 setter 的ViewModel ,以及提取经验证的不可变位置实例的ToPosition()方法.虽然这个解决方案没问题,但它会产生大量重复的代码,尤其是XAML.
有问题的值对象包含三到五个属性,这些属性通常是X,Y,Z和一些辅助内容的变体.鉴于此,我考虑创建三个ViewModel来处理各种可能性,其中每个ViewModel需要公开每个属性的值的属性以及为每个标签显示的描述(例如"Latitude").
更进一步,似乎我可以将它简化为一个可以处理N个属性并使用反射挂钩所有内容的一般ViewModel.像属性网格,但对于不可变对象.属性网格的一个问题是我希望能够更改外观,以便我可以使用标签和文本框,例如:
Latitude: [ 32 ] <- TextBox
Longitude: [ 115 ]
Height: [ 12 ]
Run Code Online (Sandbox Code Playgroud)
或者将它放在DataGrid中,例如:
Latitude | Longitude | Height
32 115 12
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:
你能想出一个解决这个问题的优雅方法吗?有没有这样做的图书馆或关于类似的东西的文章?
我主要是在寻找:
当我在Form上有许多控件(即Label,Button等)做几乎相同的事情时,我经常使用一种方法来处理所有控件Click,MouseDown,MouseUp事件.
但要知道哪个控件抛出事件并访问该控件的属性,我需要将"sender"对象强制转换为正确的类型.
问题是我总是知道它是哪种类型,我不需要"TryCast","DirectCast"并检查操作是否返回true.我有时也使用CType.
Dim btn as Button = CType(sender, Button)
btn.Txt = "Pushed"
当我已经知道控件的类型时,我想找到最快的转换方法,我知道有一个Button事件调用我的方法,并且像将转发器对象转换为Button控件的最快方法.
有什么建议?
XML:/A/B或/A
我想得到所有A没有B孩子的节点.
我试过了
/A[not(B)]
/A[not(exists(B))]
Run Code Online (Sandbox Code Playgroud)
没有成功
/*[local-name()="A" and .... ]如果可能的话,我更喜欢带语法的解决方案.有效的想法吗?
澄清.xml看起来像:
<WhatEver>
<A>
<B></B>
</A>
</WhatEver>
Run Code Online (Sandbox Code Playgroud)
要么
<WhatEver>
<A></A>
</WhatEver>
Run Code Online (Sandbox Code Playgroud) 我是否需要特殊的库,或者我可以创建一个巨大的类来试图实例化我的项目的每个对象并测试那里的所有方法?这在理论上是怎么做的?
我正在努力检查Perl中版本号的有效性.正确的版本号是这样的:
即有效版本号可能类似于v0.123.45.678或ver18.493.039.1.
我提出了以下正则表达式:
if ($ver_string !~ m/^v(er)?(0{1}\.)|([1-9]+\d*\.)\d+\.\d+\.\d+/)
{
#print error
}
Run Code Online (Sandbox Code Playgroud)
但这不起作用,因为版本号如verer01.34.56.78被接受.我无法理解这一点,我知道Perl往往是贪心,但不应该^ v(呃)?确保最多只能有一个"呃"?为什么不是0 {1}.仅匹配"0",而不是接受"01".还有?
这个正则表达式实际上抓住了"rere"的东西:m/^ v(呃)?[0-9.] + /但是在我的尝试中我无法看到我允许它的位置.
我的情况是我使用Lua(C)API来执行字符串中保存的脚本.我希望用户能够终止脚本的执行(如果脚本包含无限循环,这是必不可少的),我该怎么做?
lua_State *Lua = lua_open();
char * code;
// Initialisation code
luaL_dostring(L, code);
Run Code Online (Sandbox Code Playgroud) 我是.NET开发人员并使用VS2008/TFS2008.最近,另一位开发人员离开了我们公司,现在我必须维护他的代码.他是Delphi开发人员(主要是Delphi 7,但也是Delphi 2007)并且他没有使用任何源代码控制.
有没有办法将他的代码放在Team Foundation Server中?在Delphi IDE中集成是一个很大的优势.
.net ×1
c# ×1
c++ ×1
casting ×1
cocoa-touch ×1
delphi ×1
download ×1
http ×1
immutability ×1
iphone ×1
lua ×1
performance ×1
perl ×1
python ×1
regex ×1
scripting ×1
terminate ×1
tfs ×1
transparency ×1
tryparse ×1
uikit ×1
unit-testing ×1
vb.net ×1
wpf ×1
xpath ×1