小编sco*_*ttm的帖子

如何在控制台上的相同位置写入输出?

我是python的新手,我正在编写一些脚本来自动从FTP服务器等下载文件.我想显示下载的进度,但我希望它保持在相同的位置,例如:

输出:

正在下载文件FooFile.txt [47%]

我试图避免这样的事情:

     Downloading File FooFile.txt [47%]
     Downloading File FooFile.txt [48%]
     Downloading File FooFile.txt [49%]
Run Code Online (Sandbox Code Playgroud)

我应该怎么做呢?


重复: 如何在命令行应用程序中打印当前行?

python console-output

148
推荐指数
6
解决办法
16万
查看次数

如何导入__init__.py中定义的类

我正在尝试组织一些模块供我自己使用.我有这样的事情:

lib/
  __init__.py
  settings.py
  foo/
    __init__.py
    someobject.py
  bar/
    __init__.py
    somethingelse.py
Run Code Online (Sandbox Code Playgroud)

lib/__init__.py,我想定义一些类,如果我导入lib使用.但是,如果不将类分成文件,并将其导入,我似乎无法弄明白__init__.py.

而不是说:

    lib/
      __init__.py
      settings.py
      helperclass.py
      foo/
        __init__.py
        someobject.py
      bar/
        __init__.py
        somethingelse.py

from lib.settings import Values
from lib.helperclass import Helper
Run Code Online (Sandbox Code Playgroud)

我想要这样的东西:

    lib/
      __init__.py  #Helper defined in this file
      settings.py
      foo/
        __init__.py
        someobject.py
      bar/
        __init__.py
        somethingelse.py

from lib.settings import Values
from lib import Helper
Run Code Online (Sandbox Code Playgroud)

是可能的,还是我必须将类分成另一个文件?

编辑

好吧,如果我从另一个脚本导入lib,我可以访问Helper类.如何从settings.py访问Helper类?

此处的示例描述了包内引用.我引用"子模块经常需要互相引用".在我的例子中,lib.settings.py需要Helper,而lib.foo.someobject需要访问Helper,那么我应该在哪里定义Helper类?

python packages

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

在实例化派生类时,是否未隐式调用抽象类构造函数?

举个例子:

abstract class Base {
    function __construct() {
        echo 'Base __construct<br/>';
    }
}

class Child extends Base {
    function __construct() {
        echo 'Child __construct<br/>';
    }
}

$c = new Child();   
Run Code Online (Sandbox Code Playgroud)

来自C#背景,我希望输出为

Base __construct
Child __construct

但是,实际输出只是

孩子__construct

php abstract-class

62
推荐指数
2
解决办法
3万
查看次数

如何使用简单的insert语句将二进制文件数据插入二进制SQL字段?

我有一个SQL Server 2000,其中包含一个包含image列的表.

如何通过指定文件的路径将文件的二进制数据插入该列?

CREATE TABLE Files
(
  FileId int,
  FileData image
)
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server sql-server-2000

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

何时在ASP.Net MVC中使用TempData vs Session

我试图搞清楚MVC框架,所以请耐心等待.

现在,我唯一使用会话存储的是存储当前登录的用户.我的网站很简单.对于此示例,请考虑三个域对象:Person,Meeting和File.用户可以登录并查看会议的"仅限会员"个人资料,并可以向其添加文件,或查看会议的公共"个人资料"(如果他们未登录).

因此,从会议的私人资料中,登录用户,我有一个"添加文件"链接.此链接路由到FileContoller.Add(int meetingId).通过此操作,我获得了用户希望使用会议ID添加文件的会议,但在发布表单后,我仍然需要知道用户正在向哪个会议添加文件.这就是我的问题所在,我应该通过TempData传递"当前正在与之交互"会议,还是将其添加到会话存储中?

这就是我目前的添加操作设置,但它不起作用:

    public ActionResult Add(int meetingId)
    {
        try
        {
            var meeting = _meetingsRepository.GetById(meetingId);
            ViewData.Model = meeting;
            TempData[TempDataKeys.CurrentMeeting] = meeting; /* add to tempdata here */
        }
        catch (Exception)
        {
            TempData[TempDataKeys.ErrorMessage] = "Unable to add files to this meeting.";
            return RedirectToRoute("MeetingsIndex");
        }

        return View();
    }

    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Add(FormCollection form)
    {
        var member = Session[SessionStateKeys.Member] as Member;
        var meeting = TempData[TempDataKeys.CurrentMeeting] as Meeting; /* meeting ends up null here */

        if (member == null)
        {
            TempData[TempDataKeys.ErrorMessage] = "You …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc session tempdata

60
推荐指数
3
解决办法
7万
查看次数

我可以使用掩码使用Boost迭代目录中的文件吗?

我想迭代匹配类似的目录中的所有文件somefiles*.txt.

boost::filesystem没有内置的东西,或者我需要一个正则表达式或每个东西leaf()

c++ filesystems boost

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

你能用字符串实例化一个类吗?

我正在使用构建器模式来分离一堆不同的配置可能性.基本上,我有一堆名为ID的类(类似于ID12345).这些都继承自基础构建器类.在我的脚本中,每次运行此应用程序时,我都需要为每个类(大约50个)实例化一个实例.所以,我试图看看是否代替做这样的事情:

ProcessDirector = ProcessDirector()
ID12345 = ID12345()
ID01234 = ID01234()

ProcessDirector.construct(ID12345)
ProcessDirector.construct(ID01234)

ID12345.run()
ID01234.run()
Run Code Online (Sandbox Code Playgroud)

我可以做这样的事情(我知道这不起作用):

IDS = ["ID12345", "ID01234"]

ProcessDirector = ProcessDirector()
for id in IDS:
  builder = id() #some how instantiate class from string
  ProcessDirector.construct(builder)
  builder.run()
Run Code Online (Sandbox Code Playgroud)

这样,当我需要在将来添加一个新的时,我所要做的就是将ID添加到IDS列表中,而不是在整个代码中添加新的ID.

编辑

看起来根据数据的来源,有一些不同的意见.这些ID输入到其他人无法访问的文件中.我不是从命令行读取字符串,并且我希望将来在添加新ID时能够进行少量更改.

python reflection design-patterns

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

using子句会关闭此流吗?

我显然已经习惯了一个糟糕的编码习惯.这是我写的代码示例:

using(StreamReader sr = new StreamReader(File.Open("somefile.txt", FileMode.Open)))
{
    //read file
}
File.Move("somefile.txt", "somefile.bak"); //can't move, get exception that I the file is open
Run Code Online (Sandbox Code Playgroud)

我认为,因为using条款明确要求Close(),并Dispose()StreamReaderFileStream会也关闭.

我能解决问题的唯一方法是将上面的块更改为:

using(FileStream fs = File.Open("somefile.txt", FileMode.Open))
{
  using(StreamReader sr = new StreamReader(fs))
  {
    //read file
  }
}

File.Move("somefile.txt", "somefile.bak"); // can move file with no errors
Run Code Online (Sandbox Code Playgroud)

应该StreamReader通过在第一个区块中关闭而关闭底层FileStream?或者,我错了吗?

编辑

我决定发布实际的违规代码块,看看我们是否可以深入了解这一点.我现在很好奇.

我以为我在using条款中遇到了问题,所以我把所有内容都扩展了,每次都无法复制.我在这个方法调用中创建了文件,所以我认为其他任何文件都没有打开句柄.我还验证了Path.Combine调用返回的字符串是否正确.

private static void GenerateFiles(List<Credit> credits)
{
    Account i; …
Run Code Online (Sandbox Code Playgroud)

c# dispose filestream streamreader

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

为什么我的样式表会将我重定向到登录?

我确信这与IIS有关,但我无法弄明白.

我有一个使用表单身份验证的网站.当我的网站尝试访问任何文件资源(javascript文件,css等)时,我被重定向到我的web.config中设置的表单登录页面.如果我只是在地址栏中键入地址,我也会被重定向.

表单身份验证的web.config条目非常基本:

<authentication mode="Forms">
  <forms loginUrl="~/Account/LogOn" timeout="2880" />
</authentication>
Run Code Online (Sandbox Code Playgroud)

还有两个位置节点可以拒绝来自站点其他部分的用户:

<location path="n2">
  <system.web>
    <authorization>
      <allow roles="Editors" />
    </authorization>
  </system.web>
</location>
<location path="web.config">
  <system.web>
    <authorization>
      <deny users="*" />
    </authorization>
  </system.web>
</location>
Run Code Online (Sandbox Code Playgroud)

我在Windows Server 2008 R2上使用标准的IIS7安装.

编辑 所以,如果我添加一个随机的auth cookie(FormsAuthentication.SetAuthCookie()),资源变得可用,我知道它必须是我的身份验证模型,不知何故搞砸了.它适用于另一台服务器(我只是复制了它).我有什么想法可以追踪问题吗?

asp.net-mvc iis-7 windows-server-2008-r2

26
推荐指数
1
解决办法
5616
查看次数

如何检查当前时间是否介于时间范围内?

我有一项服务,用户可以配置为在"非高峰"时段运行.他们可以设置服务可以运行的时间范围.

例如:

用户A上午8点至下午5点工作,因此他们希望安排应用程序在下午5:30至7:30之间运行.

用户B工作时间为晚上9点至早上6点,因此他们安排应用程序在早上6:30到晚上8:30之间运行.

关键是应用程序使用他们的计算机而不是.

给定当前时间的DateTime,开始的DateTime和停止时间的DateTime,如何检查当前时间是否在开始和停止之间.

对我来说棘手的部分是时间可以越过午夜边界.

c# datetime

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