小编fra*_*ima的帖子

一起执行多个功能而不会降低性能

我有这个过程,必须使用pl/pgsql进行一系列查询:

--process:
SELECT function1();
SELECT function2();
SELECT function3();
SELECT function4();
Run Code Online (Sandbox Code Playgroud)

为了能够在一次调用中执行所有操作,我创建了一个过程函数:

CREATE OR REPLACE FUNCTION process()
  RETURNS text AS
$BODY$
BEGIN
    PERFORM function1();
    PERFORM function2();
    PERFORM function3();
    PERFORM function4();
    RETURN 'process ended';
END;
$BODY$
  LANGUAGE plpgsql
Run Code Online (Sandbox Code Playgroud)

问题是,当我总结每个函数自身所用的时间时,总计为200秒,而函数所process()用的时间超过一个小时!

也许这是一个内存问题,但我不知道postgresql.conf应该改变哪种配置.

DB在Debian 8中的PostgreSQL 9.4上运行.

postgresql plpgsql database-performance query-performance postgresql-performance

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

如何在python中打印Counter的前十个元素

使用此代码,我首先打印所有使用文本文件中使用的最常用单词排序的元素.但是我如何打印前十个元素?

with open("something.txt") as f:
    words = Counter(f.read().split())
print(words)
Run Code Online (Sandbox Code Playgroud)

python counter

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

无法使用Python打开Excel文件

我在使用Python 2.7.9的Debian GNU / Linux计算机上。

作为我工作的一部分,我一直在制作python脚本,以各种格式(例如Excel,Csv,Txt)读取输入,并将信息解析为更标准的文件。这不是我第一次打开或使用Excel文件。

有一个特定的文件给我带来了问题,我只是无法打开它。当我尝试使用xlrd(版本0.9.3)时,它给了我以下错误:

xlrd.open_workbook('sample.xls')
Run Code Online (Sandbox Code Playgroud)

XLRDError:不支持的格式或损坏的文件:BOF不是工作簿/工作表:op = 0x0009 vers = 0x0002 strm = 0x000a build = 0 year = 0-> BIFF21

我试图独自调查此事,在StackOverflow中找到了两个答案,但无论如何我都无法打开它。我发现的这个特定答案可能是问题所在(第二个解释),但其中不包含解决方法:https : //stackoverflow.com/a/16518707/4345659

可以将文件转换为csv / txt的工具也可以解决该问题。

我已经尝试过:

  • rd
  • openpyxl
  • xlsx2csv(shell工具)

此处提供示例文件:https : //ufile.io/r4m6j

作为附带说明,我可以使用LibreOffice Calc和MS Excel打开它,因此最终可以通过这种方式将其更改为csv。问题是,我需要使用python脚本来完成所有操作。

提前致谢!

python xlrd python-2.7

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

Python 逐行从 url 下载大型 csv 文件,只有 10 个条目

我有一个很大的客户端 csv 文件,并通过 url 共享下载,我想逐行按字节下载它,我只想限制 10 个条目。

我有以下代码将下载文件,但我想在这里只下载文件中的前 10 个条目,我不想要完整的文件。

#!/usr/bin/env python
import requests
from contextlib import closing
import csv

url = "https://example.com.au/catalog/food-catalog.csv"

with closing(requests.get(url, stream=True)) as r:
    f = (line.decode('utf-8') for line in r.iter_lines())
    reader = csv.reader(f, delimiter=',', quotechar='"')
    for row in reader:
        print(row)
Run Code Online (Sandbox Code Playgroud)

我不太了解contextlib,它将如何with在 Python 中使用。

任何人都可以在这里帮助我,这真的很有帮助,并提前致谢。

python csv

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

我收到此错误"TypeError:str()最多需要1个参数(2个给定)"at"client_response"变量

编辑格式:

这是原始代码

from __future__ import print_function
import socket
import sys

def socket_accept():
    conn, address = s.accept()
    print("Connection has been established | " + "IP " + address[0] + "| Port " + str(address[1]))
    send_commands(conn)
    conn.close()

def send_commands(conn):
    while True:
        cmd = raw_input()
        if cmd == 'quit':
            conn.close()
            s.close()
            sys.exit()
        if len(str.encode(cmd)) > 0:
            conn.send(str.encode(cmd))
            client_response = str(conn.recv(1024), "utf-8")
            print(client_response, end ="")

def main():
    socket_accept()
    main()
Run Code Online (Sandbox Code Playgroud)

我收到此错误"TypeError:str()最多需要1个参数(2个给定)"at"client_response"变量

python sockets websocket python-2.7 python-3.x

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

从字符串和整数的元组,得到元组内最接近给定值的数字

给定一个带有整数的元组内部的元组,我想找到哪个数字在元组内最接近我输入的数字:

Data = (('Batik Air',int(561)),('Citilink',int(620)),('Garuda Indonesia',int(1501))
Value=500
findClosest(Data,Value)
# magic
('Batik Air',561)
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?

python sorting integer tuples python-3.x

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

从 GitHub 打印 Markdown 文件

我想分享一种从 GitHub 漂亮地打印 markdown (*.md) 文件的简单方法。

我发现了很多有趣的方法,主要是在这个问题上。但它们都没有更新和工作,或者我正在寻找什么(一种简单而舒适的漂亮打印方式)。基于几个答案,我设法自己制定了一个可行的解决方案。

也欢迎任何其他解决方案。

markdown github pretty-print

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