小编Erx*_*xin的帖子

有没有简单的方法可以在 python 中的 r'' 字符串中添加 \n

我需要将多个路径添加到最后带有 \n 字符的单行字符串中。为了方便起见,在字符串的前面添加了关键字r。此时字符“\n”无法正常显示。

前任。

str_output = r'name = %(name)s, some_dir = \\folder0\\..., description = "%(des)s\n'
print(str_output % {'name':'new', 'des':'new add one'})
Run Code Online (Sandbox Code Playgroud)

输出将显示无换行符。目前我使用 string plus 来绕过这个问题。例如:

str_output = r'name = %(name)s, some_dir = \\folder0\\..., description = "%(des)s' + '\n'
Run Code Online (Sandbox Code Playgroud)

而不是之前定义的 str_output。我很好奇是否还有其他方便的方法可以做到这一点?在我的代码中,字符串 plus 看起来很难看。谢谢你!

python string format

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

python 3.3.2+中yield和from的区别是什么

python 3.3.2+ python支持创建生成器函数的新语法

yield from <expression>
Run Code Online (Sandbox Code Playgroud)

我已经快速尝试了这个

>>> def g():
...     yield from [1,2,3,4]
...
>>> for i in g():
...     print(i)
...
1
2
3
4
>>>
Run Code Online (Sandbox Code Playgroud)

它似乎很简单,但PEP文件很复杂.我的问题是,与之前的收益率声明相比,还有其他区别吗?谢谢.

python yield

10
推荐指数
3
解决办法
6743
查看次数

如何从CEdit控件获取文本

我是ATL的新人.所以请原谅我提出这个问题.

问题描述: 一个CEdit控件被添加到ATL对话框类中.它附加在对话框初始化函数中.

//Define the edit control
ATLControls::CEdit  m_txtInput;

//In the OnInitDialog function
m_txtInput.Attach(GetDlgItem(IDC_INPUT_LINE));

m_txtInput.SetWindowText(_T("New directory"));

//In the public memeber function of the dialog GetInput()
//I have tried three kinds of method to get the text. But all of them are throw an 
//assert exception, IsWindow() failed. 
//1.
GetDlgItemText(IDC_INPUT_LINE, input);
//2.
ZeroMemory(m_lptstrInput, MAX_PATH);
m_txtInput.GetLine(0, m_lptstrInput, MAX_PATH);
//3.
BSTR input; 
m_txtInput.GetWindowText(input);
Run Code Online (Sandbox Code Playgroud)

是一个关于如何从CEdit获取文本但不起作用的主题.

为什么CEdit控件可以使用函数SetWindowText()设置文本但不能通过函数GetWindowText()获取文本?这让我很困惑.非常感谢,如果有人可以帮我解释一下.

c++ atl cedit

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

如何通过jquery获取canvas元素?

目前我正在使用html5画布,简单的代码如下:

<!DOCTYPE HTML>
<html>
<head>
    <title></title>
    <script src="Scripts/jquery-2.0.3.min.js"></script>
    <script>
        $(function () {
            //THIS WILL NOT WORK!
            //var cv = $("#cv");  

            //THIS WORKS FINE.
            var cv = document.getElementById("cv"); 

            ct = cv.getContext("2d");
            var mText = "hi";
            var x = cv.width / 2;
            var y = cv.height / 2;
            ct.textAligh = "center";
            ct.fillText(mText, x, y);
        });
    </script>
</head>
<body>
<div style="width:200px; height:200px; margin:0 auto; padding:5px;">
    <canvas id="cv" width="200" height="200" style="border:2px solid black">
    Your browser doesn't support html5! Please download a fitable browser.
    </canvas> …
Run Code Online (Sandbox Code Playgroud)

javascript jquery html5 canvas

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

WebDriver和DevTool协议有什么区别

众所周知,WebDriver协议是为自动化测试目的而设计的。但是主要的浏览器也提供DevTool协议。在某些情况下,与WebDriver相比,DevTool协议可以实现更强大的交互和操作。

我的问题是为什么会有两种不同的协议,这两种协议之间的主要区别是什么?有没有可供选择的项目开发经验可供分享?

提前致谢!

参考:

browser selenium webdriver google-chrome-devtools selenium-webdriver

5
推荐指数
2
解决办法
1528
查看次数

如何在wx中同步两个网格的滚动条

创建一个自定义wx.frame来包含一个拆分器窗口,其中包含两个网格控件。它用于比较每个网格中的数据。此时,两个网格的滚动条需要支持同步滚动。

问题:

  1. 如何获得这两个网格的滚动事件?我试图将wx.EVT_SCROLL事件绑定到该帧,但是失败了。我还尝试将滚动事件绑定到自定义网格控件中,它也失败了。
  2. 如何同步滚动两个网格的滚动条?提到的一个相对问题的答案是使用gridInstance.Scroll(row,col)滚动网格客户端窗口。但是它不包含如何同步滚动条。

非常感谢您的任何建议。

自定义框架的init方法

    def __init__(self, parent):
        wx.Frame.__init__(self, parent, -1, title='', size=(640,480))
        main_panel = wx.Panel(self, -1)
        self.TBFLAGS = ( wx.TB_HORIZONTAL| wx.NO_BORDER| wx.TB_FLAT)
        self.controller = None
        self.isSyncScroll = True

        #hsizer = wx.BoxSizer(wx.VERTICAL)
        gsizer = wx.FlexGridSizer(rows = 1,
                                                    cols = 1,
                                                    vgap = 2,
                                                    hgap = 2)
        gsizer.AddGrowableRow(0)
        gsizer.AddGrowableCol(0)
        self.tb = self.init_toolbar()
        (sub_panel0, sub_panel1) = self.init_splitter(main_panel)
        self.grid0 = self.init_grid(sub_panel0)
        self.grid1 = self.init_grid(sub_panel1)
        self.init_status_bar()

        gsizer.Add(main_panel, 1, wx.EXPAND)
        self.SetSizer(gsizer)

        ico = wx.Icon(u'Compare.ico', wx.BITMAP_TYPE_ICO)
        self.SetIcon(ico)
        self.Maximize()

        #can't catch the scroll event …
Run Code Online (Sandbox Code Playgroud)

python grid wxwidgets sync scrollbar

4
推荐指数
1
解决办法
1150
查看次数

如何通过pyodbc备份数据库

使用pyodbc游标执行时,不能在事务中使用backup语句.似乎pyodbc在默认事务中执行查询.我还尝试使用自动提交模式或在备份语句之前添加commit语句.这两个都不起作用.

#can't execute the backup statement in transaction
cur.execute("backup database database_name to disk = 'backup_path'")
#not working too
cur.execute("commit;backup database database_name to disk = 'backup_path'")
Run Code Online (Sandbox Code Playgroud)

是否可以通过pyodbc执行备份语句?提前致谢!

-----添加了附加信息------------------------------------------ -----------------------------

备份操作封装在一个函数中,例如:

def backupdb(con, name, save_path):
    # with autocommit mode, should be pyodbc.connect(con, autocommit=True)
    con = pyodbc.connect(con) 
    query = "backup database %s to disk = '%s'" % (name, save_path)
    cur = con.cursor()
    cur.execute(query)
    cur.commit()
    con.close()
Run Code Online (Sandbox Code Playgroud)

如果通过以下代码调用该函数,

backupdb('DRIVER={SQL Server};SERVER=.\sqlexpress;DATABASE=master;Trusted_Connection=yes',
             'DatabaseName',
             'd:\\DatabaseName.bak')
Run Code Online (Sandbox Code Playgroud)

那么例外将是:

File "C:/Documents and Settings/Administrator/Desktop/bakdb.py", line 14, in <module>'d:\\DatabaseName.bak')
File "C:/Documents and Settings/Administrator/Desktop/bakdb.py", …
Run Code Online (Sandbox Code Playgroud)

python database backup pyodbc

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

为什么python类方法与它的对象方法不同但是它们都具有相同的id?

我正在研究python的属性和方法,并阅读例1.2.功能更多.我尝试在示例上做一个简单的测试,但结果让我有点困惑.

>>> class foo(object):
...     def fun(self):
...         pass
...     
>>> f = foo()
>>> f.fun is foo.fun
False
>>> id(f.fun) 
36093064
>>> id(foo.fun)
36093064
>>> 
Run Code Online (Sandbox Code Playgroud)

python版本,2.7.5操作系统,win8

为什么'是'测试返回False但id返回相同的值?我期望在开始时看到差异ID.提前致谢!

python methods class

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