根据这里的模式匹配,匹配是213.239.250.131和014.10.26.06.
然而,当我运行生成的Python代码并打印出值时re.findall(p, test_str),我得到:
[('', '', '213.239.250.131'), ('', '', '014.10.26.06')]
Run Code Online (Sandbox Code Playgroud)
我可以在列表中乱砍,它可以获取我正在寻找的值(IP地址),但是(i)它们可能并不总是在元组中处于相同的位置而且(ii)我宁愿理解什么是继续这里,所以我可以收紧正则表达式,或者使用Python自己的re功能只提取IP地址.
为什么我会得到这个元组列表,为什么明显的空白匹配,以及我们如何确保只返回IP地址?
这里的每个“7-pack”搜索结果都包含许多评论,例如“5 个评论”、“没有评论”等。
每个的类名是fl r-iNTHbQvDybDU. 它包含一个空格,所以如果我尝试 find_elements_by_class_name(),我得到:
InvalidSelectorError: Compound class names not permitted
Run Code Online (Sandbox Code Playgroud)
根据此处的其他答案,我需要做的就是删除空间并重试。没有运气 - 一个空列表
所以我尝试find_element_by_css_selector():
find_elements_by_css_selector(".fl.r-iNTHbQvDybDU")
Run Code Online (Sandbox Code Playgroud)
仍然没有运气 - 空列表。你接下来会尝试什么?
通常会显示Google地图结果:

'\n113 W 5th St\nEureka, MO, United States\n(636) 938-9310\n'
Run Code Online (Sandbox Code Playgroud)
另一种变化:

'Clayton Village Shopping Center, 14856 Clayton Rd\nChesterfield, MO, United States\n(636) 227-2844'
Run Code Online (Sandbox Code Playgroud)
而另一个:

'Wildwood, MO\nUnited States\n(636) 458-7707'
Run Code Online (Sandbox Code Playgroud)
请注意\n字符位置的变化.
我想要提取前X行作为地址,最后一行作为电话号码.像(.*\n.*)\n(.*)第一个例子那样的正则表达式就足够了,但是对于其他两个例子而言则不够.我唯一可以依赖的是电话号码将在表格中(ddd) ddd-dddd.
我认为一个允许每一种可能变化的正则表达式很难得到.是否可以使用split(),但保持我们分裂的角色?那么在这个例子中,拆分"(",分割出地址和电话号码,但是在电话号码中保留这个字符?我可以连接到"("后面split("(")[1],但是有一个更简洁的方式吗?
我打开一个文件并阅读它csv.DictReader.我迭代了两次,但第二次没有打印.为什么这样,我怎样才能使它工作?
with open('MySpreadsheet.csv', 'rU') as wb:
reader = csv.DictReader(wb, dialect=csv.excel)
for row in reader:
print row
for row in reader:
print 'XXXXX'
# XXXXX is not printed
Run Code Online (Sandbox Code Playgroud) 因为我需要解析然后使用单元格中的实际数据,所以我openpyxl用data_only = True.
事实证明,这非常有用。但是,现在同样需要在单元格中包含公式的 xlsm,当我保存更改时,保存的版本中缺少公式。
是data_only = True和公式相互排斥?如果没有,如何在保存时访问单元格中的实际值而不会丢失公式?
当我说我丢失了公式时,似乎公式的结果(总和、串联等)得到了保留。但是当单击单元格时不再显示实际的公式本身。
更新:
为了确认公式是否被保留,我重新打开了保存的 xlsm,这次data_only左为False. 我检查了value使用公式构建的单元格的 。如果保留了公式,打开将 data_only 设置为 False 的 xlsm 应该会返回公式。但它返回实际的文本值(这不是我想要的)。
(如果有人可以提出更好的标题,请务必继续编辑).
给定一个list list1,其确切长度未知但已知它将始终小于或等于5,我正在寻找一个单独的空列表list 2,固定长度为5,其值为list1,填充为空如果list2的大小小于5 ,则为字符串.
例如,如果list1 = [1,2,3]
那么list2应该是[1,2,3,'','']
等等.
所以:
if len(list1) < 5:
list2.extend(list1)
# at this point, I want to add the empty strings, completing the list of size 5
Run Code Online (Sandbox Code Playgroud)
实现这一目标的最佳方法是什么(确定要添加多少空字符串)?
在OS X Lion上安装了wxPython(最新版本)后,尝试import wx使用解释器会导致:
File "wx/__init__.pyc", line 45, in <module>
File "wx/_core.pyc", line 4, in <module>
File "wx/_core_.pyc", line 18, in <module>
File "wx/_core_.pyc", line 11, in __load
ImportError: /Users/Pyderman/Downloads/e30356784638/dist/Program.app/Contents/Resources/lib/python2.6/lib-dynload/wx/_core_.so: no appropriate 64-bit architecture
Run Code Online (Sandbox Code Playgroud)
所以按照给出的说明man python,我设置:
export VERSIONER_PYTHON_PREFER_32_BIT=yes
Run Code Online (Sandbox Code Playgroud)
然后导入wx工作(在解释器中).然而,当我使用py2app将程序捆绑到OS X应用程序时,错误重新出现,即使我尝试在同一个终端中启动应用程序,我已将环境变量设置为更喜欢32位.
我猜不知道py2app不知道32位是首选吗?但是如何实施,以及如何实施或控制?
附:
# -*- coding: utf-8 -*-
Run Code Online (Sandbox Code Playgroud)
在我的.ipynb顶部,Jupyter现在正确显示重音字符.
当我导出到csv(with .to_csv())pandas包含重音字符的数据框时:
...在Excel中打开csv时,字符无法正确呈现.
无论我是否设置都是这种情况encoding='utf-8'.pandas/python是否可以在这里完成所有这些,这是一个Excel问题?或者可以在导出到csv之前完成某些事情?
我有一个看起来像这样的CSV(当带入一个pandas Dataframe时
read_csv(),它看起来一样).
我想根据以下逻辑更新列ad_requests中的值:
对于给定的行,如果ad_requests具有值,请不管它.否则,把它的值上一行对价值AD_REQUESTS减去前行的价值为印象.所以在第一个例子中,我们希望最终得到:
我部分到了那里:
df["ad_requests"] = [i if not pd.isnull(i) else ??? for i in df["ad_requests"]]
Run Code Online (Sandbox Code Playgroud)
这就是我陷入困境的地方.之后else,我想"回去"并访问前一个"行",但我知道这不是大熊猫的意思.另外需要注意的是,行总是按行ad_tag_name分组为三个.如果我pd.groupby["ad_tag_name"],我可以把它变成一个list并开始切片和索引,但同样,我认为必须有更好的方法在熊猫中做到这一点(因为有很多东西).
Python:2.7.10
熊猫:0.18.0
对于给定的列表,我希望:
我可以使用组合range(len(mylist))和::符号来逐步切片列表:
1::3 will give me the elements at indices 1, 4, 7, 10 etc.
::2 will give me the elements at indices 0, 2, 4, 6 etc.
Run Code Online (Sandbox Code Playgroud)
但这里有一些问题:
Python是否为自定义逐步切片提供了内置机制?FWIW,我实际上正在处理一个大熊猫(版本0.18.0)系列,我刚刚使用了常规列表的例子以便于解释.