IronPython核心python模块的C#或其他.NET等效项? - c#

我想编译和分发(在.net上)与IronPython兼容的一些python程序,但我对.net并不陌生,并且遇到了与特定python模块相关的错误。有一个实用程序可以编译到较低级别的.net,并且可以正常工作,但是在处理通用库时会出错。在解释器中运行的代码不一定要编译。例如,以下内容利用了基本模块shutilgetpassosgetpass.getuser()以字符串形式返回用户名。 shutil提供了一种复制功能(尽管我可以用纯python重写并可以编译该功能),而os在这里用于获取文件夹信息,制作目录和取消链接文件。我如何才能沿着以下几行全部或任何部分调整内容,以仅使用.net本机库?如果有人使用IronPython作为从python到学习.net的桥梁,那么任何相关的技巧都将不胜感激。

import shutil
import os
import getpass

uname = getpass.getuser()

folders = ["/users/"+uname+"/location", "/users/"+uname+"/other_location"]

for folder in folders:
    for root, dir, files in os.walk(folder):
        for file in files:
            file_name = os.path.join(root, file)
            time_stamp = os.stat(file_name).st_mtime
            time_dict[time_stamp] = file_name
            working_list.append(time_stamp)


def sync_up():
    for item in working_list:
        if item not in update_list:
            os.remove(item)
        else:
            shutil.copy2(item, some_other_folder)

def cp_function(target=some_folder):
    if os.path.exists(target):
        sync_up()
    else:
        try:
            os.mkdir(target)
            sync_up()
        except:
            print """error connecting
            """

参考方案

.NET中的os(和shutil)替换位于System.IO namespace中。

  System.IO命名空间包含允许读取和写入文件和数据流的类型,以及提供基本文件和目录支持的类型。

对于大多数文件文件操作,请尝试System.IO.File class的方法。
目录信息可通过System.IO.Directory class获得。

我不知道本机的os.walk替代方法,请尝试使用GetDirectoriesGetFiles方法构造您自己的目录遍历器。 Directory.GetDirectories(String) doc中有一个RecursiveFileProcessor示例。

System.Environment.UserName属性是检索当前登录用户的用户名的一种简单方法。

一个简单的交互式IronPython示例:

>>> import clr
>>> from System import Environment
>>> Environment.UserName
'gimel'
>>> from System import IO
>>> IO.Directory.GetCreationTimeUtc('c:/')
<System.DateTime object at 0x000000000000002B [02/07/2006 12:53:25]>
>>> IO.Directory.GetLastWriteTimeUtc('c:/')
<System.DateTime object at 0x000000000000002C [09/11/2009 08:15:32]>
>>> IO.Directory.GetDirectories('C:/').Count
24
>>> help(IO.File.Copy)
Help on built-in function Copy:

Copy(...)
    Copy(str sourceFileName, str destFileName, bool overwrite)

        Copies an existing file to a new file.
         Overwriting a file of the same name is allowed.
...

Ajax表单未获得结果 - javascript

我有一个带有搜索功能的主页。从主页搜索可以正常工作,但是当我尝试使用ajax表单(在url.com/search?id=biology上)再次搜索时,我被重定向到404页面,提示未找到/Search。主页上的表格:@using (Html.BeginForm("Index", "Search", new { Retur…

调整窗口大小时如何调整YouTube播放器的大小 - php

我想显示包含YouTube视频的弹出窗口。我的问题是当用户调整弹出窗口的大小时如何调整YouTube播放器的大小?弹出窗口的头部分PHP / HTML代码<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/…

选择后显示输入元素 - javascript

我有一个表格,其中取决于用户的选择,输入元素是否可见。实际上,用户正在以另一种形式设置已定义的合作伙伴类型,并且如果选中该元素,则允许在该类型的合作伙伴上可见的元素类型1将显示以下元素:<input type="text" id="partner" name="partner" class=&…

Div单击与单选按钮相同吗? - php

有没有一种方法可以使div上的click事件与表单环境中的单选按钮相同?我只希望下面的div提交值,单选按钮很丑代码输出如下:<input id="radio-2011-06-08" value="2011-06-08" type="radio" name="radio_date&#…

ASP.net C#崩溃一行 - c#

我有一个母版页,在on load事件中包含以下几行: string menuIDdata = Page.Request.QueryString["mid"]; menuID = 0; // Get the menu ID if (!int.TryParse(menuIDdata, out menuID)) { menuID = 0; } …