小编ryp*_*pel的帖子

Python - 使用RegEx从字符串中提取模式

我在变量中有一个字符串a如下:

a = 'foo(123456) together with foo(2468)'
Run Code Online (Sandbox Code Playgroud)

我想用"re"来从字符串中提取foo(123456)foo(2468).

我有两个问题:

  1. 使用正确的正则表达式是什么?foo(.\*)似乎不起作用,因为它123456)foo(2468as 一起对待.*
  2. 如何提取两个foo?

python regex

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

按字符拆分泰语文本

不是通过单词边界,这是可以解决的.

例:

#!/usr/bin/env python3  
text = '?????????????'  
for char in text:  
    print(char)  
Run Code Online (Sandbox Code Playgroud)

这将产生:






这显然不是理想的输出.有任何想法吗?

可移植的文本表示形式是:

text = u'\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e41\u0e23\u0e01\u0e40\u0e23\u0e34\u0e48\u0e21'
Run Code Online (Sandbox Code Playgroud)

python unicode python-3.x thai

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

将连续颜色图中的颜色与 matplotlib 中的特定值相关联

我试图找到一种方法将某些数据值与连续颜色图中的特定颜色相关联。

我有一个值范围为 的特定图像[min, max],我希望以下值[min, q1, q2, q3, max](其中q'n'指四分位数)[0, 0.25. 0.5, 0.75. 1.0]与所选颜色图中对应的颜色相关联。结果,颜色放大器的中点将对应于图像中的中值,依此类推......

我一直在环顾四周,但我一直无法找到一种方法来做到这一点。

python matplotlib quartile

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

Pandas - 过滤器和正则表达式搜索 DataFrame 的索引

我有一个 DataFrame,其中的列是 MultiIndex,索引是名称列表,即index=['Andrew', 'Bob', 'Calvin',...].

我想创建一个函数来返回使用名称“Bob”或以字母“A”开头或以小写字母开头的数据帧的所有行。如何才能做到这一点?

我查看df.filter()了 regex 参数,但它失败了,我得到:

df.filter(regex='a')
TypeError: expected string or buffer
Run Code Online (Sandbox Code Playgroud)

或者:

df.filter(regex=('a',1)
TypeError: first argument must be string or compiled pattern
Run Code Online (Sandbox Code Playgroud)

我尝试过其他事情,例如通过re.compile('a')无济于事。

python regex pandas

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

有条件地在 docker-compose 中挂载卷以适应多种情况

我使用 docker 和 docker compose 将科学工具打包成易于/通用的可执行模块。一个例子是一个 docker,它将一个相当复杂的 python 库打包到一个运行 jupyter notebook 服务器的容器中;这个想法是,其他不太精通技术的科学家可以克隆一个 github 存储库,运行docker-compose up然后进行分析,而无需安装库、配置各种插件和其他依赖项等。

我让这一切工作正常,只是我在让卷安装以连贯的方式工作时遇到问题。这样做的原因是 docker 容器内的库处理多种数据集,用户将这些数据集存储在几个单独的目录中,这些目录通常通过 shell 环境变量进行跟踪。(请不要告诉我这是一个糟糕的方法——这是在现场做事的方式,而不是我选择的做事方式。)因此,例如,如果用户存储 FreeSurfer 数据,它们将有一个名为 SUBJECTS_DIR 的环境变量,指向包含数据的目录;如果他们存储 HCP 数据,他们将有一个环境变量 HCP_SUBJECTS_DIR。但是,他们可能同时拥有这些集合,或者两者都没有(以及其他一些)。

我希望能够在我的 docker-compose.yml 文件中放置类似的内容以处理这些情况:

version: '3'
services:
   my_fancy_library:
      build: .
      ports:
         - "8080:8888"
      environment:
         - HCP_SUBJECTS_DIR="/hcp_subjects"
         - SUBJECTS_DIR="/freesurfer_subjects"
      volumes:
         - "$SUBJECTS_DIR:/freesurfer_subjects"
         - "$HCP_SUBJECTS_DIR:/hcp_subjects"
Run Code Online (Sandbox Code Playgroud)

在对此进行测试时,如果用户设置了两个环境变量,则一切正常。但是,如果他们没有这些设置中的一个,我会收到一个关于不安装长度少于 2 个字符的目录的错误(我认为这是对安装由“:/hcp_subjects”指定的卷的抱怨)。

这个问题问的基本相同,答案指向这里,如果我理解正确的话,它基本上解释了如何以某种方式解决多个 docker-compose 文件。由于以下几个原因,这对于我的案例来说并不是一个真正可行的解决方案:

  • 这个工具是为那些不一定了解 docker、docker-compose 或相关实用程序的人设计的,所以期望他们编写/编辑自己的 docker-compose.yml 文件是一个问题
  • 这些目录不止两个(我已经展示了两个作为示例),我实际上无法为这些已声明或未声明的路径的每个可能组合制作一个 docker-compose 文件
  • 老实说,考虑到所需的信息就在 docker-compose 已经读取的变量中,这个解决方案看起来真的很笨拙。

我能够想出的唯一体面的解决方案是要求用户运行脚本./run.sh而不是docker-compose up; 该脚本检查环境变量,docker-compose.yml用适当的卷写出自己的文件,然后 …

configuration volumes docker dockerfile docker-compose

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

在IDE中使用lxml,代码完成/自动完成

我试图使用LXML在pycharm或使用的PyDev日食,一切正常,除了代码完成,这似乎是不存在的.我需要实现一些东西来使它与lxml中的类一起工作吗?

例如:

import lxml.html
html = open('html.html', 'r').read()

root = lxml.html.fromstring(html)
tds = root.cssselect("td.author")

print temp[0].text # I know that the text attribute exists but code completion doesn't show it
Run Code Online (Sandbox Code Playgroud)

注意:Intelisense和智能帮助适用于其他事情而不是lxml.

python lxml pydev pycharm

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

将Numpy导入函数

我不知道导入模块的正确方法。

我有一个初始化代码,进行一些初步计算等的主文件。我还有5个函数f1,f2,... f5。主要代码和所有功能都需要Numpy。

如果我在主文件中定义了所有函数,则代码可以正常运行。(与导入:import numpy as np

如果将函数放在单独的文件中,则会收到错误消息:
Error : Global name 'linalg' is not defined.

什么是导入模块以便函数f1-f5可以访问Numpy功能的正确方法?

python numpy python-import

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

命令与子进程

只是想知道是否有人能告诉我原因

import subprocess, commands

p=subprocess.Popen(["ls", "*00080"], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
output=p.communicate()[0]
print "o", output
result=commands.getoutput("ls *00080")
print "o", result
Run Code Online (Sandbox Code Playgroud)

给出输出:

o ls: cannot access *00080: No such file or directory

o 010.010.013.165.42974-010.010.013.164.00080
Run Code Online (Sandbox Code Playgroud)

两者都应该找不到它们的文件?

一个

python subprocess

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

VirtualEnv的ImportError

我正在尝试将VirtualEnv用于我正在创建的Flask应用程序,因为每个人都建议我这样做.在创建我的虚拟环境之后,我在激活环境时使用pip安装了我需要的库.我正在使用此脚本遇到ImportError问题.当我不在虚拟环境中时,代码工作正常.

我的剧本:

#!/usr/bin/python

import sc2reader
...
...
Run Code Online (Sandbox Code Playgroud)

当我尝试运行它时,我得到了这个:

(flaskapp)xxxx@xxxx-VirtualBox:~/flaskapp/bin$ ./test.py 
Traceback (most recent call last):
  File "./test.py", line 3, in <module>
    import sc2reader
ImportError: No module named sc2reader
Run Code Online (Sandbox Code Playgroud)

我已经尝试更改shebang以反映我的Python的VirtualEnv路径,但这并没有解决任何问题.该库site-packages位于我的虚拟环境中的文件夹中,因此我不确定为什么我会收到ImportError.

我之前从未使用过VirtualEnv所以我假设我配置错了所以它没有看到我的网站包.

python virtualenv python-import importerror

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

将不可迭代的变量传递给使用map()计算的函数

我在python中工作并尝试使用此结构转换函数:

def func(g,h,iterable):
 return iterable*(g+h)

for iterable in range(20):
  print func(2,3,iterable)
Run Code Online (Sandbox Code Playgroud)

进入映射函数:

def func(g,h,iterable):
 return iterable*(g+h)

print map(func,2,3,range(20)) #does not work...
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是通过map()函数传递常量,目前我不知道该怎么做.

我想要这个结构,所以我可以轻松使用Ipython并行工具.

假设:

  • 所有迭代的实际功能完成需要约1.5小时(因此需要使用并行map()功能)
  • 功能很复杂,不能使用列表理解

从本质上讲,如果还不是很明显,我是一名MATLAB程序员,可以实现python的飞跃,并parfor在matlab中寻找一个很好的替代函数.

python parallel-processing map ipython

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