小编Joh*_*ohn的帖子

忽略超越比较文件比较中的日期列

我正在使用BeyondCompare3,我有两个文件包含这种格式的行。

abc,bbbb,cdef,test,14:45:23.123,info,comment

我想从比较中省略日期。

我选择了“会话”>“会话设置”>“重要性”选项卡>“编辑语法”按钮,并创建了一个新规则。

输入元素名称后,我选择了“基本”类别,选中了“正则表达式”并搜索“文本”。[0-9] {1,2}:[0-9] {1,2}:[0-9] {1,2}。[0-9] {1,3}。我也尝试过/[0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2}。[0-9]{1,3}/ 。

然后,我在工具栏上单击“忽略无关紧要的差异”。

我希望这会忽略比较中的日期列。但事实并非如此。

此或其他工具/脚本的任何指针将不胜感激。

约翰。

datetime date datestamp beyondcompare beyondcompare3

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

使用python日志模块将消息信息发送到一个文件并将错误信息发送到另一个文件

我发现了一些类似的例子来将消息记录到多个文件。但没有什么完全符合我的要求。我正在使用日志记录模块,并将所有信息消息记录到控制台和文件。(稍后我将关闭控制台日志记录)。

但是我希望扩展它以将所有信息消息记录到 file.log 并将所有错误消息记录到 file.err。如果可以将所有消息记录到 file.log(错误和信息),然后将所有错误消息记录到一个单独的文件,那就更好了。

这可能吗?

---------

我显然无法在 7 小时内回答我自己的问题,所以我将更新我的原始问题。

---------

我现在觉得自己很傻。在发布之前尝试了几个小时的示例后,我“再次”发现了这一点。就像在阅读示例时输入我想要做的事情的任务触发了一些事情。

http://docs.python.org/2/howto/logging-cookbook.html

这会将 INFO 级别及更高级别的所有内容输出到一个日志文件 (log_file),然后还将 logging.error 和 logging.warning 消息打印到单独的文件 (err_file)

# set up logging to file - see previous section for more details
logging.basicConfig(level=logging.INFO,
                   format='%(asctime)s %(name)-12s %(levelname)-8s %(message)s',
                   filemode='w')

log_error = logging.FileHandler(err_file)
log_error.setLevel(logging.WARNING)

log_info = logging.FileHandler(log_file)
log_info.setLevel(logging.INFO)

# set a format which is simpler for console use
formatter = logging.Formatter('%(asctime)s %(levelname)-8s %(message)s')    

# tell the handler to use this format
log_error.setFormatter(formatter)    
log_info.setFormatter(formatter)        

# add the handler to …
Run Code Online (Sandbox Code Playgroud)

python logging file

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

无法将“DapperRow”类型的对象转换为“System.String”类型

我正在使用 Dapper 访问数据库对象。

所以这一行

Console.Write(string.Join(System.Environment.NewLine, results));
Run Code Online (Sandbox Code Playgroud)

给我

{DapperRow, VALUE_A = 'Y', VALUE_B = 'Y'}
Run Code Online (Sandbox Code Playgroud)

但我想访问或打印这些值,例如

DapperRow, 
VALUE_A = 'Y'
VALUE_B = 'Y'
Run Code Online (Sandbox Code Playgroud)

但我收到“System.InvalidCastException:无法使用以下代码将类型'DapperRow'的对象转换为类型'System.String'”。我尝试使用 foreach 循环遍历此列表。

using (var conn = new OracleConnection("Password=xxxxx;Persist Security Info=True;User ID=xxxxx;Data Source=xxxxx"))
{
// dapper adds an extension method to the connection for querying
string sql = "SELECT X, Y FROM Z WHERE ABC = 123";
var results = conn.Query(sql).ToList();
Console.Write(string.Join(System.Environment.NewLine, results));

    foreach (string value in results)
    {
    Console.WriteLine("> {0}",value);
    }
}
Run Code Online (Sandbox Code Playgroud)

c# dapper

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

将一行分成具有多层键值对的字典

我有一个包含这种格式的行的文件.

Example 1:
nextline = "DD:MM:YYYY INFO - 'WeeklyMedal: Hole = 1; Par = 4; Index = 2; Distance = 459; Score = { Player1 = 4 };"

Example 2:
nextline = "DD:MM:YYYY INFO - 'WeeklyMedal: Hole = 1; Par = 4; Index = 2; Distance = 459; Score = { Player1 = 4; Player2 = 6; Player3 = 4 };"
Run Code Online (Sandbox Code Playgroud)

我首先用':'分割这一行,这给了我一个包含2个条目的列表.我想将这一行拆分为带有键和值的字典,但是得分键有多个具有值的子键.

Hole 1
Par 4
Index 2
Distance 459
Score 
    Player1 4
    Player2 6
    Player3 4
Run Code Online (Sandbox Code Playgroud)

所以我使用的是这样的......

split_line_by_semicolon = …
Run Code Online (Sandbox Code Playgroud)

python dictionary split key-value

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

如何获取Qt QListWidget中列出的已检查项目

我已经用一个项目列表填充了一个QListWidget,并添加了一个复选框,使所有内容都未选中.

for td in root.iter('testdata'):
    test_data = td.get('ins')
    item = QtGui.QListWidgetItem(test_data, self.listWidgetLabels)
    item.setFlags(item.flags() | QtCore.Qt.ItemIsUserCheckable)
    item.setCheckState(QtCore.Qt.Unchecked)
Run Code Online (Sandbox Code Playgroud)

然后,用户单击QListItem中的一些项目,然后单击gui上的"生成文件"按钮.

self.pushButtonGenerateFile.clicked.connect(self.generate_file)
Run Code Online (Sandbox Code Playgroud)

我想获得所有已检查的QListItem的列表.

def generate_driver(self):
    test = self.listWidgetLabels.selectedItems()
    items = []
    checked_items = []
    for index in range(self.listWidgetLabels.count()):
        items.append(self.listWidgetLabels.item(index))

        for x in self.listWidgetLabels.selectedItems():
            checked.append(x.text())
    for i in checked:
        print("Checked Items: {0}".format(i))
Run Code Online (Sandbox Code Playgroud)

上面的内容获取列表中的selectedItem.我试过getState(),getChecked(),但QListWidget项不存在.

任何线索都非常感谢.

谢谢,

约翰.

python pyqt qlistwidget checked

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

HTTP 错误 401:未经授权使用 urllib.request.urlopen

我在 python 中使用 urllib.request 尝试从 Teamcity 下载一些构建信息。此请求过去无需用户名和密码即可工作,但最近的安全更改意味着我必须使用用户名和密码。所以我改变了尝试以下两种解决方案:

尝试1)

url = 'http://<domain>/httpAuth/app/rest/buildTypes/<buildlabel>/builds/running:false?count=1&start=0'

# create a password manager
password_mgr = urllib.request.HTTPPasswordMgrWithDefaultRealm()

# Add the username and password.
top_level_url = "http://<domain>/httpAuth/app/rest/buildTypes/id:<buildlabel>/builds/running:false?count=1&start=0"
password_mgr.add_password(None, top_level_url, username, password)

handler = urllib.request.HTTPBasicAuthHandler(password_mgr)

# create "opener" (OpenerDirector instance)
opener = urllib.request.build_opener(handler)

# use the opener to fetch a URL
opener.open(url)
Run Code Online (Sandbox Code Playgroud)

尝试2

url = 'http://<username>:<password>@<domain>/httpAuth/app/rest/buildTypes/id:buildlabel/builds/running:false?count=1&start=0'
rest_api = urllib.request.urlopen(url)
Run Code Online (Sandbox Code Playgroud)

这两个都返回“HTTP 错误 401:未经授权”。但是,如果我要打印“url”并将此输出复制到浏览器中,则链接可以正常工作。但是当通过 python 使用时,我收到上述错误。

我在另一个 Perl 脚本中使用了非常相似的东西,这也很完美。

* 已解决如下 *

python teamcity

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

如何创建复选框列表

我试图读入一个 xml 文件并QListWidget用它的一些内容填充 a 。每个条目都应该有一个复选框。

在 Qt Designer 中,我创建了列表并添加了一个带有复选框的项目,方法是将项目添加到 listWidget,然后右键单击它并选择“编辑项目”>“属性”>“将标志设置为 UserCheckable”。所以我可以手动完成。

但是当我读入 xml 文件以填充 ListWidget 时,我无法使这些项目可检查。

import xml.etree.ElementTree as et

xml_file = os.path.join(path, testcase_file)
tree = et.parse(xml_file)
root = tree.getroot()

for testcases in root.iter('testcase'):
    testcase_name = str(testcases.attrib)
    item = self.listWidgetTestCases
    item.addItem(QtGui.QApplication.translate("qadashboard", testcase_name, None))
    # item.setFlags(item.flags() | QtCore.Qt.ItemIsUserCheckable)
    # item.setCheckState(QtCore.Qt.Unchecked)
Run Code Online (Sandbox Code Playgroud)

这将在列表小部件中创建一个测试用例名称列表。但是我无法将这些项目放入复选框中。item.setFlagsorItemIsUserCheckable无法识别列表小部件,因此在上面的示例中注释掉了这两行。

python checkbox qt pyqt qlistwidget

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

使用streamreader找到一行后如何读取下x行

我想在文本文件中搜索包含“Performance Stats:”的行,然后打印接下来的 20 行左右,因为它们是性能统计表。我正在使用 Streamreader。

string pathToFile = "\\host\c$\temp\logs\myPerformanceFile.txt"

using (var filestream = new FileStream(pathToFile, FileMode.Open, FileAccess.Read,                               FileShare.ReadWrite))
using (var streamReader = new StreamReader(filestream, Encoding.Default))
{
    string line;
    while ((line = streamReader.ReadLine()) != null)
    {
        if (line.Contains("Performance Stats:"))
        {
            Console.WriteLine(line)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我试图找到每个统计数据的标题栏。但 20 行看起来有点混乱,例如,我正在使用相同的搜索参数解析文件中有 5 个表。但我只想要其中一个表中的数据。

        if (line.Contains("Timings:"))
        {
            Console.WriteLine(line)
        }
        if (line.Contains("Downloads:")) 
        {
            Console.WriteLine(line)
        }
        if (line.Contains("Reset")) 
        {
            Console.WriteLine(line)
        }
Run Code Online (Sandbox Code Playgroud)

c# streamreader

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

如何在perl中以特定顺序打印哈希

我有一系列哈希.

输出:

$VAR1 = {
      'Name' => 'Bob',
      'Address' => 'Home',
      'DOB' => '01/01/1990',
      'Sex' => 'M',
    };
$VAR2 = {
      'Name' => 'Mary',
      'Address' => 'Home',
      'DOB' => '01/01/1990',
      'Sex' => 'F',
    };
Run Code Online (Sandbox Code Playgroud)

我打印到xml文件.但是,当我将此数组打印到xml文件时,我得到:

<Record Address=Home DOB=01/01/1990 Name=Bob Sex=M />
Run Code Online (Sandbox Code Playgroud)

我喜欢有姓名,地址,DOB,性别.

<Record Name=Bob Address=Home Sex=M DOB=01/01/1990 />
Run Code Online (Sandbox Code Playgroud)

按键或键值对数组进行排序也不会使值按正确的顺序排列.是否有一个简单的解决方案以所需的顺序打印哈希?

printing perl hash

-1
推荐指数
1
解决办法
535
查看次数