小编dan*_*van的帖子

pathlib追加模式下的路径`write_text`

python pathlib.Path对象write_text()在添加模式下有快捷方式吗?

如果该文件存在,则标准open()函数必须mode="a"打开文件以进行写入和追加,并且Paths .open()函数似乎具有相同的功能(my_path.open("a"))。

但是,便捷的.write_text('..')快捷方式又如何呢?有没有一种方法可以用来pathlib完成打开和追加文件的操作open()呢?

为了清楚起见,我可以

with my_path.open('a') as fp:
    fp.write('my text')
Run Code Online (Sandbox Code Playgroud)

但是还有另一种方法吗?

my_path.write_text('my text', mode='a')

python python-3.x pathlib

5
推荐指数
3
解决办法
463
查看次数

正确使用setBackground

希望对你来说很简单......

我一直在尝试设置QtListWidgetItem的背景颜色,但我没有太多运气 - 这可能是因为我没有正确使用QListWidgetItem ...在我的测试代码中我可以设置每三分之一的前景列表中的项目,但设置背景似乎没有任何效果.谁能发现我的愚蠢错误?

我在Qt 4.7上用PyQt4和PySide对它进行了测试

谢谢,丹

import sys
from PySide import QtCore, QtGui

class List(QtGui.QListWidget):
    def __init__(self):
        super(List, self).__init__()
        self.populate()

    def populate(self):
        for i in range(32):
            item = QtGui.QListWidgetItem(self)
            item.setText('%d'%i)

            if i % 3 == 0:
                brush = QtGui.QBrush()
                brush.setColor(QtGui.QColor('red'))
                item.setBackground(brush)

            if i % 3 == 1:
                brush = QtGui.QBrush()
                brush.setColor(QtGui.QColor('blue'))
                item.setForeground(brush)

if __name__ == '__main__':

    app = QtGui.QApplication(sys.argv)

    listw = List()
    listw.show()

    sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)

python pyqt pyside

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

计算季度时间序列的同比增长率

我正在发现 R,虽然我看到它有多么强大,但我也有点迷茫。在这种情况下,我有一个季度时间序列,称为通货膨胀。我的目标是计算每个季度数据点的同比增长率。所以基本上,当它从 1981 年第一季度开始时,我想做 (1982 年第一季度通货膨胀 - 1981 年第一季度通货膨胀)/1981 年第一季度通货膨胀,以此类推......

当我做 diff(Inflation,lag=4) 时,我得到了第一部分,即(1982 年第一季度通货膨胀 - 1981 年第一季度通货膨胀)。但是我如何告诉 R 将其除以 1981 年第一季度的通货膨胀作为第一点,然后除以 1981 年第二季度的通货膨胀......

来自其他语言,我的第一种方法是循环,但我相信 R 可以更快、更有效地做到这一点。

谢谢!

r time-series

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

使用POST数据确认通用FormView POST成功返回给用户

使用通用FormView我想反映一些关于提交给用户的POST数据,但我不确定如何最好地执行此操作.

class MyView(generic.FormView):
    form_class = MyForm
    def get_success_url(self):
        return reverse('success')
Run Code Online (Sandbox Code Playgroud)

reverse('success') 重定向到一个简单的

class SuccessView(generic.TemplateView):
    template_name = 'success.html'
Run Code Online (Sandbox Code Playgroud)

有没有办法可以通过调用访问params对象,或者有更好(更简单)的方法吗?TIA DanSuccessViewget_success_url

更新(我的解决方案,但感谢您的想法)

我实际上发现这是解决问题的最简单方法(对我来说):

class SuccessMixin(object):
    def post(self, request, *args, **kwargs):
        form_class = self.get_form_class()
        form = self.get_form(form_class)

        if form.is_valid():
            return self.form_valid(form)
        else:
            return self.form_invalid(form, **kwargs)

    def form_valid(self, form):
        # this is my post processing step which returns the
        # feedback data that I want to pass to the user
        form_data = form.get_some_data_from_form()
        return render_to_response('submitted.html', 
            {'form_data': form_data,}, 
            context_instance=RequestContext(self.request))
Run Code Online (Sandbox Code Playgroud)

每个视图都继承了这个mixin,如果表单有效,那么我从中提取反馈数据并将其作为响应呈现 - …

python django django-forms django-generic-views

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

将 Javascript 字典转换为 python 字典

在我的 Django 应用程序中的某个位置,我对我的视图进行了 Ajax 调用

$.post("/metrics", {
  'program': 'AWebsite',
  'marketplace': 'Japan',
  'metrics': {'pageLoadTime': '1024'}
});
Run Code Online (Sandbox Code Playgroud)

在我的Python代码中,我有

@require_POST
def metrics(request):
    program = request.POST.get('program', '')
    marketplace = request.POST.get('marketplace', '')
    metrics = request.POST.get('metrics', '')
    reportMetrics(metrics, program, marketplace)
Run Code Online (Sandbox Code Playgroud)

python 中的函数metrics()应该reportMetrics()使用这些参数进行调用,然后这些参数应该进入日志文件。但在我的日志文件中,我没有看到“pageLoadTime”值 - 可能是因为它是作为字典传入的。将来我需要向其中添加更多项目,因此它需要保留为字典(而不是像前两个那样的字符串)。

将传入的 javascript 字典转换为 python 字典的最简单方法是什么?

javascript python dictionary

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

如何使用pyenv安装的python创建virtualenv

我安装了2个pyenv版本

pyenv versions
  system
* 2.7 (set by ../.python-version)
  3.5.3
Run Code Online (Sandbox Code Playgroud)

当我virtualenv在项目目录中创建一个内部目录时,我希望它virtualenv为当前的pyenvpython版本创建一个2.7

但是当我使用创建一个 mkvirtualenv whatever

虚拟环境正在创建python3 virtualenv

ll ~/.virtualenvs/mobile2/bin
total 5800
-rw-r--r--  1 ohadperry  staff   2.0K Sep  6 10:59 activate
-rw-r--r--  1 ohadperry  staff   1.0K Sep  6 10:59 activate.csh
-rw-r--r--  1 ohadperry  staff   2.1K Sep  6 10:59 activate.fish
-rw-r--r--  1 ohadperry  staff   1.1K Sep  6 10:59 activate_this.py
-rwxr-xr-x  1 ohadperry  staff   266B Sep  6 10:59 easy_install
-rwxr-xr-x  1 ohadperry  staff   266B Sep  6 10:59 …
Run Code Online (Sandbox Code Playgroud)

python virtualenv virtualenvwrapper pyenv

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