小编npa*_*tel的帖子

从python中的excelsheet读取特定单元格值

我想从我的python脚本中获取excelsheet中的特定单元格值.我碰到xlrd,xlwt,xlutils读模块/从excelsheet写入/.

我用hi,hello创建了myfile.xls,如何在第一列的3个单元格中创建.

示例代码: -

import xlrd

workbook = xlrd.open_workbook('myfile.xls')
worksheet = workbook.sheet_by_name('Sheet1')
num_rows = worksheet.nrows - 1
curr_row = -1
while curr_row < num_rows:
        curr_row += 1
        row = worksheet.row(curr_row)
        print row
Run Code Online (Sandbox Code Playgroud)

输出: -

[text:u'hi']
[text:u'hello']
[text:u'how']
Run Code Online (Sandbox Code Playgroud)

我想从excelsheet读取特定的单元格值,有人可以建议我,如果有办法做到这一点?

python python-2.7

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

如何在要使用python脚本解析的yaml文件中替换环境变量值

我需要在yaml文件中使用环境变量“ PATH”,该环境变量需要使用脚本进行解析。

这是我在终端上设置的环境变量:

$ echo $PATH
/Users/abc/Downloads/tbwork
Run Code Online (Sandbox Code Playgroud)

这是我的sample.yml:

---
Top: ${PATH}/my.txt
Vars:
- a
- b
Run Code Online (Sandbox Code Playgroud)

当我用脚本解析该Yaml文件时,看不到PATH变量的实际值。

这是我的脚本:

import yaml
import os
import sys

stream = open("sample.yml", "r")
docs = yaml.load_all(stream)
for doc in docs:
    for k,v in doc.items():
        print k, "->", v
    print "\n",
Run Code Online (Sandbox Code Playgroud)

输出:

Top -> ${PATH}/my.txt
Vars -> ['a', 'b']
Run Code Online (Sandbox Code Playgroud)

预期输出为:

Top -> /Users/abc/Downloads/tbwork/my.txt
Vars -> ['a', 'b']
Run Code Online (Sandbox Code Playgroud)

如果我做错了事,有人可以帮我弄清楚做事的正确方法吗?

python pyyaml python-2.7

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

如何检查列表中是否只有两个可以重复的特定元素?

如何检查列表中是否只有两个可以重复的特定元素?

例如:我希望出现在列表中的有效元素只有2个:

1. abstract.f
2. None
Run Code Online (Sandbox Code Playgroud)

如果list包含任何其他元素,则应抛出错误消息。

list1 = ['abstract.f', None, None, 'abstract.f']
# This is a valid list as it doesn't have any other element than 2 of above.

list1 = ['abstract.f', None, 'xyz']
# This is invalid list as it has 'xyz' which is not expected.
Run Code Online (Sandbox Code Playgroud)

python python-2.7

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

使用正则表达式从输出中解析所需的字段

我需要解析这个输出: -

S1-link-id   eNB-IP-Address   MME-IP-Address    Facing  State
-------------------------------------------------------------------
303          141.1.1.2        191.1.1.2         eNodeB  Established
301          141.1.1.2        191.1.1.2         MME     Established
306          141.1.1.3        191.1.1.2         eNodeB  Established
304          141.1.1.3        191.1.1.2         MME     Established
309          141.1.1.4        191.1.1.2         eNodeB  Established
307          141.1.1.4        191.1.1.2         MME     Established

我想为单个id(第一列)获取多个值.对于"303" - 我需要enb,mme ip地址,面向和状态值,对于其他ID也是如此.

一个所需输出的正则表达式: -

\s*(?P<id>\d+)\s+(?P<enb_adr>\d+\.\d+\.\d+\.\d+)\s+(?P<mme_adr>\d+\.\d+\.\d+\.\d+)\s+(?P<facing>\w+)\s+(?P<state>\w+)\s*
Run Code Online (Sandbox Code Playgroud)

在此之后坚持如何继续以获得整个输出的期望值.

python

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

How to re-order list elements in Perl

I have a list in Perl.

@alist=("a_vld","a_sf","a_ef","a_val");
print join(',', @alist), "\n";
Run Code Online (Sandbox Code Playgroud)

Output:

a_vld,a_sf,a_ef,a_val
Run Code Online (Sandbox Code Playgroud)

How can I re-order the elements in list such that its output is as following expected output:

a_sf,a_ef,a_vld,a_val
Run Code Online (Sandbox Code Playgroud)

Note: a_ will keep changing with different strings but I want to preserve the order of sf,ef,vld,val

perl

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

标签 统计

python ×4

python-2.7 ×3

perl ×1

pyyaml ×1