小编Lor*_*sum的帖子

Postgres: \copy 语法

使用 CentOS 7 上的 PostgreSQL 9.5,我创建了一个数据库sample以及几个表。我有每个表的.csv数据/home/MyUser/data。例如,存在TableName.csv"TableName"

如何将 csv 文件加载到每个表中?


我尝试过的方法不起作用,我无法弄清楚我做错了什么。

从数据库中加载

$ psql sample

sample=# COPY "TableName" FROM '/home/MyUser/data/TableName.csv' WITH CSV;

ERROR:  could not open file "/home/MyUser/data/TableName.csv" for reading: Permission denied
Run Code Online (Sandbox Code Playgroud)

这意味着文件权限问题。所有的文件data/-rw-r--r--和目录本身drwxr-xr-x。所以文件权限应该不是问题(除非我遗漏了一些东西)。网上说COPY权限有问题,可以试试\copy

从 CLI 加载

$ psql \copy sample FROM /home/MyUser/data/TableName.csv WITH CSV

psql: warning: extra command-line argument "FROM" ignored
psql: warning: extra command-line argument "/home/MyUser/data/TableName.csv" ignored
psql: warning: extra …
Run Code Online (Sandbox Code Playgroud)

postgresql

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

Vim:选择过去行尾的矩形块

如何选择在Vim中超出行尾的矩形文本块?

假设我有

aa
bbb
cc
dddd
ee
Run Code Online (Sandbox Code Playgroud)

我想选择一个矩形块,在所有行上扩展四个字符.如果_被认为是白色空间,那么我想:

aa__
bbb_
cc__
dddd
ee__
Run Code Online (Sandbox Code Playgroud)

矩形可视块C-v仅延伸到所选最后一行的末尾:

矩形选择,延伸到线的末端

在Emacs中,我可以使用C-x <SPC>(rectangle-mark-mode)做我想做的事情.;)

vim

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

SAS - 定义字母数组

SAS 中是否有用于定义数组中字母序列的简写?

许多语言都拥有一种可以轻松做到这一点的机制,我想 SAS 也是如此,尽管我找不到它的参考资料。

例如,在 RI 中可以做

> x <- letters[1:4]
> x
[1] "a" "b" "c" "d"
Run Code Online (Sandbox Code Playgroud)

在 Python 中,一种方法是

>>> import string
>>> list(string.ascii_lowercase[:4])
['a', 'b', 'c', 'd']
Run Code Online (Sandbox Code Playgroud)

在 SAS 中,我目前必须明确列出字母,

data _null_;
  array letters (4) $ _temporary_ ('a', 'b', 'c', 'd');
  do i = 1 to hbound(letters);
    put letters(i);
  end;
run;
Run Code Online (Sandbox Code Playgroud)

sas

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

PostgreSQL:如何在长输出中向上滚动

假设我收到了一个大查询。Postgres 给了我--More--指标。按<space>向下移动一页。按<enter>会向下移动一行。有没有办法向上滚动?是否可以将输出通过管道传输到类似的东西less

我正在通过 PuTTY 在 CentOS7 上访问 PostgreSQL 9.5。

例如:

pundb=# \x on
pundb=# select * from pg_roles;

-[ RECORD 1 ]--+-------------
rolname        | dinner
rolsuper       | t
rolinherit     | t
rolcreaterole  | t
rolcreatedb    | t
rolcanlogin    | t
rolreplication | t
rolconnlimit   | -1
rolpassword    | ********
rolvaliduntil  |
rolbypassrls   | t
rolconfig      |
oid            | 10
-[ RECORD 2 ]--+-------------
rolname        | sushi
rolsuper       | f
rolinherit     | t …
Run Code Online (Sandbox Code Playgroud)

postgresql putty pager psql

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

Qt:停靠小部件如何获得其初始大小?

当小部件停靠时,我希望它改变方向并具有相对于停靠扩展方式的最小尺寸。

那是,

  • 左/右停靠 => 具有最小宽度的从上到下方向
  • 顶部/底部停靠 => 具有最小高度的从左到右方向

问题是,每当方向改变时,码头就会呈现出看似任意的宽度或高度。我无法找到一种方法来调整停靠小部件的大小/强制停靠时的特定大小。我尝试了无数种重写sizeHintminimumSizeHint调用adjustSize和摆弄的变体sizePolicy

如何确定初始d​​ock大小?


我的基本应用程序如下所示:

在此输入图像描述

该应用程序显示主要和次要信息以及相应的控件集。包含主要和次要内容的选项卡小部件被设置为中央小部件。包含相应仪表板中控件的 QStackedWidget 位于扩展坞中。当选项卡更改时,会显示相应的仪表板。下面的基本应用程序代码中给出了此操作的代码。

困难在于改变仪表板的方向会扰乱扩展坞的大小。

要调整仪表板方向,我能想到两个合理的解决方案:

  • 通过resizeEvent
  • 通过dockLocationChanged信号

调整方向通过resizeEvent

对我来说,这似乎是更好的选择。它为用户提供了最大的灵活性。如果他们不喜欢码头的方向,将其拖过特定限制将允许他们更改码头的方向。在这里我检查它的宽度是否大于高度。

    class MyDock(QtWidgets.QDockWidget):

        def __init__(self):

            super(MyDock, self).__init__()

        def resizeEvent(self, event):
            size = event.size()
            is_wide = size.width() > size.height()

            container_object = self.widget().currentWidget()

            if is_wide:
                container_object.setDirection(QtWidgets.QBoxLayout.LeftToRight)
            else:
                container_object.setDirection(QtWidgets.QBoxLayout.TopToBottom)
Run Code Online (Sandbox Code Playgroud)

下面的调整大小方法中给出了完整的代码。

改变方向dockLocationChange

由于调整大小事件始终发生,另一种方法可能是仅在停靠位置发生变化时才更改方向。为此,请将功能连接到信号dockLocationChanged并根据坞站调整方向。

    class MyDock(QtWidgets.QDockWidget):

        def __init__(self):

            super(MyDock, self).__init__()

            self.dockLocationChanged.connect(self.dock_location_changed)

        def dock_location_changed(self, area):
            top    = …
Run Code Online (Sandbox Code Playgroud)

python pyqt qdockwidget pyqt5 qtpy

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

Emacs:在球拍模式下关闭漂亮的打印

我在Windows 10上运行Emacs 24.5.1并通过SICP.麻省理工学院的编辑Edwin功能不佳,特别是在Windows上.球拍似乎是一个很好的选择.我已经安装了球拍和球拍模式,一切似乎运行正常.但是,racket-mode坚持打印我的结果.如何让它以十进制形式打印?

例如,

(require sicp)

(define (square x) (* x x))

(define (average x y)
  (/ (+ x y) 2))

(define (improve guess x)
  (average guess (/ x guess)))

(define (good-enough? guess x)
  (< (abs (- (square guess) x)) 0.001))

(define (sqrt-iter guess x)
  (if (good-enough? guess x)
      guess
      (sqrt-iter (improve guess x)
                 x)))
Run Code Online (Sandbox Code Playgroud)

这会产生诸如此类的结果

> (sqrt-iter 1 2)
577/408
Run Code Online (Sandbox Code Playgroud)

当谷歌使用术语"球拍"和"漂亮的印刷品"时,会出现很多文档,但我没有运气理解它.Racket文档似乎通过一些以'pretty-print'开头的变量来控制漂亮打印.然而,没有任何开始racket-pretty内部M-x出现.也许分数形式不是Racket认为漂亮的印刷品?

emacs pretty-print racket

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

SAS-脱离宏%DO循环

我知道存在用于数据步骤DO循环的LEAVE语句以终止当前循环。但是,我找不到相应宏命令的文档。

我已经尝试过了,%LEAVE但是似乎没有定义。

  1. SAS没有宏循环的break语句吗?
  2. 如果不是,除了使用%GOTO或以外,还有其他选择DATA _NULL_吗?

sas sas-macro

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

Python:从PNG提取元数据

我可以使用R提取必要的信息,但是为了在整个项目中保持一致,我希望能够使用Python(最好是Python3)做到这一点。我需要一个名为“设置”的标签的内容。此标记包含XML,然后需要对其进行解析。

在R中获取元数据非常简单:

library(exifr)
library(XML)

path = file.path('path', 'to', 'file')

x = read_exif(file.path(path,'image.png'))
x$Settings
Run Code Online (Sandbox Code Playgroud)

看起来Python无法做到这一点,这让我很困惑。或这样做需要我比目前拥有更多的Python和PNG知识。如何使用Python提取PNG元数据?


这是我尝试过的事情清单:

PyPng PyPNG似乎很有希望。检查每个块的长度,似乎“ Settings”标签位于zTXt块中。

import png

filename = "C:\\path\\to\\image.png"

im = png.Reader(filename)

for c in im.chunks():
    print(c[0], len(c[1]))

>>>
IHDR 13
tIME 7
pHYs 9
IDAT 47775
zTXt 714
IEND 0
Run Code Online (Sandbox Code Playgroud)

以上摘自这篇文章。但是,仍不清楚如何提取zTXt数据。

hachoir3

使用该hachoir3软件包,我尝试了以下操作:

from hachoir.parser import createParser
from hachoir.metadata import extractMetadata

filename = "C:\\path\\to\\file\\image.png"
parser = createParser(filename)
metadata = extractMetadata(parser)

for line in metadata.exportPlaintext():
    print(line)
Run Code Online (Sandbox Code Playgroud)

这给了我以下内容:

Metadata:
- Image width: 1024 …
Run Code Online (Sandbox Code Playgroud)

python png metadata

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

内置模块、标准模块和冻结模块之间的区别?

Python 模块、内置模块、标准模块和冻结模块有什么区别?


这些术语来自官方文档本身。

加载器文档中提到了Python 模块内置模块

装载机必须满足以下要求:

  • 如果模块是 Python 模块(而不是内置模块或动态加载的扩展),加载器应该在模块的全局命名空间 (module.__dict__) 中执行模块的代码。

顶级组件文档中引用了标准模块

所有内置和标准模块均可用

Frozen 模块自己的导入器,描述为

冻结模块的进口商

尽管在官方文档和核心代码中有提及,但在词汇表索引BFMPS)或(显然)中没有对 Python 模块、内置模块、标准模块或冻结模块的明确定义别处。


定义:内置模块

这是我可以为内置模块提出的最佳定义:

内置模块是一种扩展模块,其在所列出的(即用C语言编写,Java和.NET等)sys.builtin_module_names属性。请注意,此列表可能因 Python 解释器而异(即 Cython 的内置模块可能不是 IronPython 的内置模块等)。

我从以下来源拼凑了这个定义:

标准库文档指出,

该库包含内置模块(用 C 编写)

importlib.machinery.BuiltinImporter文档的状态,

所有已知的内置模块都列在sys.builtin_module_names.

sys.builtin_module_names反过来状态属性的文件,

编译到此 Python 解释器中的所有模块的名称。(此信息无法通过任何其他方式获得) …

python python-3.x

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

导入numpy而不安装

numpy没有安装就可以导入的方法吗?

我在.exePyInstaller中内置了一个通用应用程序。该应用程序具有一个插件系统,可通过Python脚本对其进行扩展。插件导入系统适用于基本模块(单个.py文件,类,函数和简单包)。在内部,它会遍历插件目录,然后使用__import__或相应地导入importlib.import_module

该应用程序以最小的依赖关系构建,以减小可执行文件的整体大小。另外,不可能知道将来的插件将需要什么依赖关系,也不可能实际包含所有内容。但是,某些插件将不可避免地需要依赖项。 numpy是解决此类问题的良好测试案例。


这是我尝试过的。

轮文件实际上只是一个目录。可以将其添加到其中sys.path并导入内容。

import sys
sys.path.append(r"C:\path\to\numpy-1.16.3+mkl-cp36-cp36m-win_amd64.whl")

import numpy as np
Run Code Online (Sandbox Code Playgroud)

读取了wheel文件,但是导入生成错误。

*** ImportError: 

IMPORTANT: PLEASE READ THIS FOR ADVICE ON HOW TO SOLVE THIS ISSUE!

Importing the multiarray numpy extension module failed.  Most
likely you are trying to import a failed build of numpy.
Here is how to proceed:
- If you're working with a numpy git repository, try `git clean -xdf` …
Run Code Online (Sandbox Code Playgroud)

python numpy python-3.x

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