小编cwo*_*ker的帖子

Python:日志记录模块 - 全局

我想知道如何实现一个可以在任何地方使用您自己的设置的全局记录器:

我目前有一个自定义记录器类:

class customLogger(logging.Logger):
   ...
Run Code Online (Sandbox Code Playgroud)

该类位于一个单独的文件中,包含一些格式化程序和其他内容.记录仪可以完美地完成.

我在我的主python文件中导入这个模块并创建一个这样的对象:

self.log = logModule.customLogger(arguments)
Run Code Online (Sandbox Code Playgroud)

但显然,我无法从代码的其他部分访问此对象.我使用了错误的方法吗?有一个更好的方法吗?

python logging module global-variables

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

PyCharm更改文件类型关联

我在PyCharm中有一个文件,它曾经只是一个.txt文件.现在我想使用.rst(reStructuredText).

我知道当我第一次打开没有结尾的文件时,PyCharm会问我是什么类型的文件以及如何解释语法.

我能以某种方式再次打开该对话框,还是可以通过其他方式更改关联?

ide restructuredtext pycharm

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

Redis的内存使用量比数据多10倍

我有一个小问题.

我想在redis中存储一个单词表.表现很棒.

我的方法是创建一个名为"单词"的集合,并通过'sadd'添加每个新单词.

这是一个问题,当添加一个15.9mb的文件并且包含大约一百万字时,redis-server进程消耗160mb的ram.为什么我使用10倍的内存,有没有更好的方法来解决这个问题?

提前致谢

memory performance redis

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

从列表os文件路径构建树(Python) - 依赖于性能

嘿,我正在研究一个用python编写的高性能文件管理/分析工具包.我想创建一个函数,以树格式给我一个列表或类似的东西.像这个问题(java相关)

从:

dir/file
dir/dir2/file2
dir/file3
dir3/file4
dir3/file5
Run Code Online (Sandbox Code Playgroud)

注意:路径列表未排序

至:

dir/
    file
    dir2/
        file2
    file3
dir3/
    file4
    file5

[[dir, [file, [dir2, [file2]], file3]], [dir3, [file4, file5]]]
Run Code Online (Sandbox Code Playgroud)

这些方面的东西.我一直在玩一些想法,但没有一个提供我想要的速度.

注意:我已经有了路径列表,所以不用担心.该函数采用路径列表并给出树列表.

提前致谢

python tree recursion path

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

Python:argparse子命令子命令?

我有一个有很多可用选项的程序.例如,用于更改设置的配置选项.

./app config -h
Run Code Online (Sandbox Code Playgroud)

使用普通的argparse子命令给我帮助

现在我想在config子命令中添加另一个子命令,名为list以列出配置值

./app config list
Run Code Online (Sandbox Code Playgroud)

此外,该命令应该接受另一个选项,以便我可以说

./app config list CATEGORY
Run Code Online (Sandbox Code Playgroud)

仅列出一个类别的配置

我现在的代码基本上就是这个命令

>>> parser = argparse.ArgumentParser()
>>> subparsers = parser.add_subparsers(title='subcommands',
...                                    description='valid subcommands',
...                                    help='additional help')
>>> subparsers.add_parser('foo')
>>> subparsers.add_parser('bar')
>>> parser.parse_args(['-h'])
usage:  [-h] {foo,bar} ...

optional arguments:
  -h, --help  show this help message and exit

subcommands:
  valid subcommands

  {foo,bar}   additional help
Run Code Online (Sandbox Code Playgroud)

到目前为止,我找不到在子命令中使用子命令的任何方法.如果这是可能的,怎么样?如果没有,还有其他方法可以实现这一目标吗?

提前致谢

python arguments argparse

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

使用Python获取Windows电池容量

我想找出目前的电池容量和设计容量​​.

到目前为止,我可以使用Win32_Battery()类,它没有提供我需要的所有信息(至少在我的系统上没有).我使用了纯python wmi库.

另一方面,我发现这在Python中有效,如何检测计算机是否使用电池供电?但遗憾的是,它既没有提供任何有关容量的信息.

电池信息结构电池状态结构似乎为这个完美的.现在我知道我必须使用DeviceIoControl函数这样做,我发现这个C++代码解释了一下.

我更喜欢只使用ctypes的东西而不是pywin32提供的python win32api .如果你有想法如何在python中这样做,请告诉我!

提前致谢.

python windows battery ctypes pywin32

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

Python Progressbar(PyPi) - 显示随update()更改的自定义文本

嘿,我正在使用pypi的progressbar包,我非常喜欢它.我的问题是到目前为止我还没有找到显示自定义文本的方法.我的意思是显示我打电话时改变的文字pbar.update()

例如,如果我递归扫描我的计算机文件,我希望进度条更改为当前文件.

widgets = [CustomText(), ' ', Percentage(), ' ', Bar('/'), ' ', RotatingMarker()]
pbar = ProgressBar(widgets=widgets, maxval=1000)
pbar.start()

pbar.update(0, "custom_string")
Run Code Online (Sandbox Code Playgroud)

这样的事情对我来说最好.但由于更新功能只需要一个数字我不知道如何实现这样的事情而不改变进度条库本身.

提前致谢

python progress-bar

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