小编Zab*_*aba的帖子

如何在openpyxl中将列宽设置为bestFit

我已经在工作表中填充了一些数据,并且我正在尝试使列宽度假设最适合,如下所示。基本上是双击列宽调整分隔符时发生的自动调整。

这是我的最小示例,就我对openpyxl文档的理解而言,它应该有效:

import openpyxl
from typing import NoReturn

def columns_best_fit(ws: openpyxl.worksheet.worksheet.Worksheet) -> NoReturn:
    """
    Make all columns best fit
    """
    column_letters = tuple(openpyxl.utils.get_column_letter(col_number + 1) for col_number in range(ws.max_column))
    for column_letter in column_letters:
        dim = openpyxl.worksheet.dimensions.ColumnDimension(ws, index=column_letter, bestFit=True, customWidth=True)
        ws.column_dimensions[column_letter] = dim


wb = openpyxl.Workbook()
ws = wb.active
ws.append(("Long Column Header 1", "Even Longer Column Header 2"))
ws.append(("some data", "more data"))
columns_best_fit(ws)
wb.save("column_width_test.xlsx")
Run Code Online (Sandbox Code Playgroud)

然而,当我打开生成的文件时,列只是稍微宽一点,但肯定不是最合适的。

python openpyxl

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

如何为Visual Studio Code正确设置PYTHONPATH

如何$PYTHONPATH在Visual Studio Code中为我的工作区正确设置变量?

背景资料

我已经安装了两个版本的GNURadio:

  1. Linux Mint软件包管理器在以下版本中安装的GNURadio版本3.7.11 /usr/lib/python2.7/dist-packages/gnuradio

  2. 由PyBOMBS安装的GNURadio版本3.7.13.4 /home/tejul/Documents/gr13/default/lib/python2.7/dist-packages/gnuradio(我的前缀目录是~/Documents/gr13/default

只有在运行setup_env.sh脚本(除其他功能外,然后添加/home/tejul/Documents/gr13/default/lib/python2.7/dist-packages$PYTHONPATH)然后在终端中启动python 之后,我才能使用GNURadio版本的较新版本

tejul@Wacom:~/Documents/gr13/default$ ls
bin  etc  include  lib  libexec  setup_env.sh  share  src
tejul@Wacom:~/Documents/gr13/default$ source ./setup_env.sh 
tejul@Wacom:~/Documents/gr13/default$ python
Python 2.7.15rc1 (default, Nov 12 2018, 14:31:15) 
[GCC 7.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from gnuradio import gr
>>> gr.version()
'3.7.13.4'
>>> 
Run Code Online (Sandbox Code Playgroud)

当然,无需修改$ PYTHONPATH python即可导入较旧的GNURadio版本。

我想在VisualStudio Code中为新版本的GNURadio编写,运行和调试python脚本。我一直在尝试了解VSCode 的python解释器工作区环境的选择。

据我了解, …

gnuradio pythonpath visual-studio-code

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

嵌套字典的类型提示

在我的Python脚本的一种数据结构我分析的是一个JSON文件,该文件后json.load(file_handle),是类型<class 'dict'>。到现在为止还挺好。现在对于使用它作为输入参数的函数,我想要解析的 json 的类型提示。我在打字文档中读到,对于dicts 作为参数,我应该使用Mapping[key_type, value_type]

from typing import Mapping

def foo(json_data: Mapping[str, str]) -> None:
    ...
Run Code Online (Sandbox Code Playgroud)

我解析的 json 有str-type 键和str-type 值,但通常情况下,它的结构是高度递归的。因此,值更可能是dict带有str键的 a,甚至是dicts 作为值。它是非常嵌套的,直到在最深的层次上,最后一个 dict 终于有了str键和str值。

那么我如何更精确地表示这个数据结构呢?我在想一些事情,沿着这个问题的思路,它可能是:

Union[Mapping[str, str], Mapping[str, Mapping]]
Run Code Online (Sandbox Code Playgroud)

但它似乎只代表一级递归。有没有更好的方法来提示这个?

python json dictionary type-hinting

7
推荐指数
2
解决办法
2833
查看次数

如何为可选的Range参数设置默认值?

我正在尝试编写一个将Range作为可选参数的函数.这是这种功能的最小例子:

Function Example(s As String, Optional r As Range) As String
    Example = "Test"
End Function
Run Code Online (Sandbox Code Playgroud)

这没关系,可以编译VBA模块.但我很难找到如何为这个可选范围参数设置默认值,例如"B:B".

Function Example(s As String, Optional r As Range **= Range("B:B")**) As String
    Example = "Test"
End Function
Run Code Online (Sandbox Code Playgroud)

这不编译.它抛出错误"需要常量表达式".

excel vba excel-vba

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

如何从pytest注入pygame事件?

如何从 pytest 测试模块向正在运行的 pygame 注入事件?

以下是一个 pygame 的最小示例,它在J按下时绘制一个白色矩形并在按下时退出游戏Ctrl-Q

#!/usr/bin/env python
"""minimal_pygame.py"""

import pygame


def minimal_pygame(testing: bool=False):
    pygame.init()
    game_window_sf = pygame.display.set_mode(
            size=(400, 300), 
        )
    pygame.display.flip()
    game_running = True
    while game_running:
        # Main game loop:
        # the following hook to inject events from pytest does not work:
        # if testing:
            # test_input = (yield)
            # pygame.event.post(test_input)
        for event in pygame.event.get():
            # React to closing the pygame window:
            if event.type == pygame.QUIT:
                game_running = False
                break
            # React to …
Run Code Online (Sandbox Code Playgroud)

python pygame pytest

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

如何使 python argcomplete 使用 PowerShell 运行

我正在尝试查看是否可以在 Windows Powershell 中为我的 python 脚本使用参数自动完成功能。据称,Powershell 支持参数完成。

这是一个不起作用的最小示例:

#!/usr/bin/env python
# PYTHON_ARGCOMPLETE_OK


import argparse
import argcomplete
from argcomplete.completers import EnvironCompleter


def argument_parser() -> argparse.ArgumentParser:
    parser = argparse.ArgumentParser(description="Minimal app where arcomplete should work")
    parser.add_argument("--version", action="store_true", help="print out version").completer = EnvironCompleter
    parser.add_argument("--do-this", action="store_true", help="do this").completer = EnvironCompleter
    parser.add_argument("--do-that", action="store_true", help="do that").completer = EnvironCompleter
    return parser


if __name__ == "__main__":
    parser = argument_parser()
    argcomplete.autocomplete(parser)
    cli_args = parser.parse_args()
Run Code Online (Sandbox Code Playgroud)

然后在 Powershell 中我尝试:输入python -i minimal -然后按<TAB>,什么也没有发生。我究竟做错了什么?也许我应该提到我没有启用全局自动完成功能。不知何故,当我activate-global-python-argcomplete在 powershell 中运行时,我收到“打开方式...”对话框。

python powershell

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

create pygame.Color有时会引发ValueError:无效的color参数

我正在尝试通过pygame.Color从整数元组构造对象来修改像素的颜色值,但是由于某些原因,我无法执行通常很可能的事情:

import pygame
import numpy
import random

# it is possible to create a pygame.Color from a tuple of values:
random_values = tuple((random.randint(0, 255) for _ in range(4)))
color = pygame.Color(*random_values)
print(f"successfully created pygame.Color: {color}")

# now for some real application. A certain pixel has this color:
pixel_color = pygame.Color(2795939583) # (166, 166, 166, 0)
print(f"pixel color: {pixel_color}")

# planning to change the intensity of the individual color channels R, G, B, A:
intensity = 25
factors = …
Run Code Online (Sandbox Code Playgroud)

python pygame numpy

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

Excel VBA:如何在其中用“ @”写商业名称的列名

我试图找出应该如何处理命名列,myTable其中的名称中包含(@)处的广告,例如active @ mail。该代码应该在立即输出窗口中打印列号:

Sub teststring()
    Dim s As String
    s = ActiveSheet.Range("myTable[active @ mail]").Column
    Debug.Print s
End Sub
Run Code Online (Sandbox Code Playgroud)

但是失败了。使用.Range("myTable[active" & Chr(64) "& mail]")也会失败。

excel vba

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

从Json字符串创建Python对象

SeismicPortal的websocket连接向我发送有关JSON对象中包含的地震的数据,我将其作为多行字符串获取,例如:

{                                                                                                                                                                                               
    "action": "create",                                                                                                                                                                         
    "data": {                                                                                                                                                                                   
        "geometry": {                                                                                                                                                                           
            "coordinates": [                                                                                                                                                                    
                -95.12,                                                                                                                                                                         
                16.52,                                                                                                                                                                          
                -52.0                                                                                                                                                                           
            ],                                                                                                                                                                                  
            "type": "Point"                                                                                                                                                                     
        },                                                                                                                                                                                      
        "id": "20180303_0000046",                                                                                                                                                               
        "properties": {                                                                                                                                                                         
            "auth": "UNM",                                                                                                                                                                      
            "depth": 52.0,                                                                                                                                                                      
            "evtype": "ke",                                                                                                                                                                     
            "flynn_region": "OAXACA, MEXICO",                                                                                                                                                   
            "lastupdate": "2018-03-03T10:26:00.0Z",                                                                                                                                             
            "lat": 16.52,                                                                                                                                                                       
            "lon": -95.12,                                                                                                                                                                      
            "mag": 4.0,                                                                                                                                                                         
            "magtype": "m",                                                                                                                                                                     
            "source_catalog": "EMSC-RTS",                                                                                                                                                       
            "source_id": "652127",                                                                                                                                                              
            "time": "2018-03-03T07:09:05.0Z",                                                                                                                                                   
            "unid": "20180303_0000046"                                                                                                                                                          
        },                                                                                                                                                                                      
        "type": "Feature"                                                                                                                                                                       
    }                                                                                                                                                                                           
}
Run Code Online (Sandbox Code Playgroud)

我想将字符串中的数据转换为python对象.

正如您在JSON数据中看到的那样,有很多嵌套.当我定义类及其嵌入性来构建一个结构的on对象时,它将保存来自JSON的所有数据,我想也许有一些神奇的Python函数jsonStringToObject可以定制一个类,所有子类都需要保存所有的JSON中的数据并创建它的实例.

让我们在变量rawData中有原始的JSON字符串:

rawData = """{"action":"create","data":{"geometry": {"type": "Point","coordinates": [... """
Run Code Online (Sandbox Code Playgroud)

现在我必须这样做:

>>> import json
>>> quake = json.loads(rawData)
>>> quake['data']['properties']['flynn_region']
"OXACA_MEXICO"
Run Code Online (Sandbox Code Playgroud)

但语法是用括号和撇号填充的.

我希望我可以像这样访问数据: …

python string parsing json python-3.x

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