我有一个需要执行外部程序的Python脚本,但由于某种原因失败了.
如果我有以下脚本:
import os;
os.system("C:\\Temp\\a b c\\Notepad.exe");
raw_input();
Run Code Online (Sandbox Code Playgroud)
然后它失败并出现以下错误:
'C:\ Temp\a'不被识别为内部或外部命令,可操作程序或批处理文件.
如果我用引号来逃避程序:
import os;
os.system('"C:\\Temp\\a b c\\Notepad.exe"');
raw_input();
Run Code Online (Sandbox Code Playgroud)
然后它工作.但是,如果我添加一个参数,它会再次停止工作:
import os;
os.system('"C:\\Temp\\a b c\\Notepad.exe" "C:\\test.txt"');
raw_input();
Run Code Online (Sandbox Code Playgroud)
执行程序并等待程序完成的正确方法是什么?我不需要从中读取输出,因为它是一个可视化程序,可以完成工作然后退出,但我需要等待它完成.
另请注意,将程序移动到非间隔路径也不是一种选择.
这也不起作用:
import os;
os.system("'C:\\Temp\\a b c\\Notepad.exe'");
raw_input();
Run Code Online (Sandbox Code Playgroud)
注意交换的单/双引号.
在此处有或没有记事本参数,它会失败并显示错误消息
文件名,目录名或卷标语法不正确.
Ubuntu - > Apache - > Phusion Passenger - > Rails 2.3
我网站的主要部分会对您的点击做出反应.因此,如果您点击链接,它会将您发送到目的地,并立即重新生成您的页面.
但是,如果您点击后退按钮,则看不到新页面.不幸的是,如果没有手动刷新,它就不会出现; 看来浏览器正在缓存它.我想确保浏览器不缓存页面.
另外,我确实想为所有静态资产设置远期到期日期.
解决这个问题的最佳方法是什么?我应该在Rails中解决这个问题吗?Apache的?JavaScript的?
谢谢你的帮助,杰森
唉.这些建议都没有强迫我正在寻找的行为.
也许有一个JavaScript的答案?我可以让rails在注释中写出时间戳,然后让javascript检查以查看时间是否在五秒钟内(或者无论什么工作).如果是,那么很好,但如果没有,那么重新加载页面?
你认为这会有用吗?
感谢你的帮助,
贾森
我有一些二进制数据,我想保存为图像.当我尝试保存图像时,如果用于创建图像的内存流在保存之前关闭,则会引发异常.我这样做的原因是因为我正在动态创建图像,因此我需要使用内存流.
这是代码:
[TestMethod]
public void TestMethod1()
{
// Grab the binary data.
byte[] data = File.ReadAllBytes("Chick.jpg");
// Read in the data but do not close, before using the stream.
Stream originalBinaryDataStream = new MemoryStream(data);
Bitmap image = new Bitmap(originalBinaryDataStream);
image.Save(@"c:\test.jpg");
originalBinaryDataStream.Dispose();
// Now lets use a nice dispose, etc...
Bitmap2 image2;
using (Stream originalBinaryDataStream2 = new MemoryStream(data))
{
image2 = new Bitmap(originalBinaryDataStream2);
}
image2.Save(@"C:\temp\pewpew.jpg"); // This throws the GDI+ exception.
}
Run Code Online (Sandbox Code Playgroud)
有没有人对如何在关闭流的情况下保存图像有任何建议?我不能依赖开发人员记住在保存图像后关闭流.实际上,开发人员没有使用内存流生成映像的IDEA(因为它发生在其他地方的其他代码中).
我真的很困惑:(
我有一个看起来像这样的字符串:
"Name1=Value1;Name2=Value2;Name3=Value3"
Run Code Online (Sandbox Code Playgroud)
Python中是否有一个内置的类/函数来接受该字符串并构造一个字典,就像我这样做了:
dict = {
"Name1": "Value1",
"Name2": "Value2",
"Name3": "Value3"
}
Run Code Online (Sandbox Code Playgroud)
我查看了可用的模块,但似乎找不到匹配的东西.
谢谢,我确实知道如何自己制作相关的代码,但是因为这些小的解决方案通常是我的领域等待发生(即有人写道:Name1 ='Value1 = 2';)等等,所以我通常更喜欢一些预先测试功能.
我会自己做的.
我Int16
从数据库中获得了一个值,需要将其转换为枚举类型.不幸的是,这是在一个代码层中完成的,这些代码对于对象知之甚少,除了它可以通过反射收集的内容.
因此,它最终调用Convert.ChangeType
失败,并出现无效的强制转换异常.
我找到了我认为有臭味的解决方法,如下所示:
String name = Enum.GetName(destinationType, value);
Object enumValue = Enum.Parse(destinationType, name, false);
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法,所以我不必通过这个String操作?
这是一个简短但完整的程序,如果有人需要进行实验,可以使用它:
using System;
public class MyClass
{
public enum DummyEnum
{
Value0,
Value1
}
public static void Main()
{
Int16 value = 1;
Type destinationType = typeof(DummyEnum);
String name = Enum.GetName(destinationType, value);
Object enumValue = Enum.Parse(destinationType, name, false);
Console.WriteLine("" + value + " = " + enumValue);
}
}
Run Code Online (Sandbox Code Playgroud) 我目前正在做一些最后的测量优化,主要是为了娱乐和学习,并发现了一些让我有几个问题的东西.
一,问题:
Expression<...>
我的简单加法方法(Int32 + Int32 => Int32)的版本比最小的DynamicMethod版本运行得更快?这是一个简短而完整的程序.在我的系统上,输出是:
DynamicMethod: 887 ms
Lambda: 1878 ms
Method: 1969 ms
Expression: 681 ms
Run Code Online (Sandbox Code Playgroud)
我期望lambda和方法调用具有更高的值,但DynamicMethod版本一直慢约30-50%(变化可能是由于Windows和其他程序).谁知道原因?
这是程序:
using System;
using System.Linq.Expressions;
using System.Reflection.Emit;
using System.Diagnostics;
namespace Sandbox
{
public class Program
{
public static void Main(String[] args)
{
DynamicMethod method = new DynamicMethod("TestMethod",
typeof(Int32), new Type[] { typeof(Int32), typeof(Int32) });
var il = method.GetILGenerator();
il.Emit(OpCodes.Ldarg_0);
il.Emit(OpCodes.Ldarg_1);
il.Emit(OpCodes.Add);
il.Emit(OpCodes.Ret);
Func<Int32, Int32, Int32> f1 =
(Func<Int32, Int32, Int32>)method.CreateDelegate(
typeof(Func<Int32, …
Run Code Online (Sandbox Code Playgroud) 我通过testflight网站发布了一个应用程序,允许我的同事进行测试,随着越来越多的人打开初始电子邮件并抽出时间完成注册过程,测试人员正在我的testflight团队中涓涓细流.
然而,将它们添加到测试中的过程看起来有点复杂,所以我想我会验证,并询问,我是否做得对,或者我是否遗漏了一些明显的东西.
目前整个过程看起来像这样:
我注意到如果我不更新版本,它将"静默"替换现有版本,并重用已经通知的测试人员列表,所以如果我只是检查所有新测试人员并完成,它只会通知新的.
但是,使用配置文件文件继续下载和捣乱似乎有点工作.
我错过了一些明显的东西吗 有没有办法让我更容易做到这一点?
例如,我注意到我可以在Xcode组织器中创建配置文件,但是该对话框没有列出任何证书,因此我无法完成该对话框.如果这是一个关键因素,请留下一个简短的答案,我会转而重新提出一个新的问题.
这个问题只是:上述程序是否正确?
作为我们产品中某些错误处理的一部分,我们想要转储一些堆栈跟踪信息.但是,我们遇到许多用户只需截取错误消息对话框的屏幕截图,而不是向我们发送程序中可用的完整报告的副本,因此我想在此对话框中提供一些最小的堆栈跟踪信息.
我机器上的.NET堆栈跟踪如下所示:
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
at System.IO.StreamReader..ctor(String path, Encoding encoding, Boolean detectEncodingFromByteOrderMarks, Int32 bufferSize)
at System.IO.StreamReader..ctor(String path)
at LVKWinFormsSandbox.MainForm.button1_Click(Object sender, EventArgs e) in C:\Dev\VS.NET\Gatsoft\LVKWinFormsSandbox\MainForm.cs:line 36
Run Code Online (Sandbox Code Playgroud)
我有这个问题:
格式看起来是这样的:
at <class/method> [in file:line ##]
Run Code Online (Sandbox Code Playgroud)
但是,at和in关键字,我认为如果它们运行,比如挪威的.NET运行时而不是我安装的英文版,它们将被本地化.
有没有办法让我以语言中立的方式分离这个堆栈跟踪,这样我才能显示那些有这个条目的文件和行号?
换句话说,我想从上面的文字中获得这些信息:
C:\Dev\VS.NET\Gatsoft\LVKWinFormsSandbox\MainForm.cs:line 36
Run Code Online (Sandbox Code Playgroud)
您提供的任何建议都会有所帮助.
在C++中,有很多方法可以编写编译的代码,但会产生未定义的行为(维基百科).C#中有类似的东西吗?我们可以用编译的C#编写代码,但是有未定义的行为吗?
源编辑器,项目项和解决方案项的右键单击上下文菜单变得非常漫长,其中两个甚至现在在我的1680x1050屏幕上滚动.
有没有办法让我隐藏这些菜单上的项目,即使我必须向Visual Studio宏系统添加一个事件并手动查找和隐藏它们?
这是一些例子,我从不使用过这些物品中的许多物品:
Edit1:当前答案+评论建议我应该使用工具栏上下文菜单中的Customize菜单项,转到第二个选项卡,Commands,然后使用Context Menus单选按钮并在那里找到相关菜单.
这里有3个,评论建议:
如你所见,它们都是空的.
编辑2:单击该对话框中的"全部重置"按钮后,对于"解决方案"和"项目"菜单,我在对话框中获得了可以编辑的项目,但更改并未影响项目或解决方案上的实际上下文菜单文件.此外,重新启动Visual Studio后,这两个对话框的内容再次为空.
c# ×5
python ×2
apache ×1
c++ ×1
caching ×1
changetype ×1
contextmenu ×1
dictionary ×1
enums ×1
exception ×1
expression ×1
gdi+ ×1
http-headers ×1
image ×1
ios ×1
parsing ×1
profiling ×1
provisioning ×1
right-click ×1
ruby ×1
shellexecute ×1
split ×1
stack-trace ×1
string ×1
testflight ×1
xamarin.ios ×1