小编Zac*_*ack的帖子

Python:将嵌套字典编写为CSV

我正在尝试将嵌套字典写入.csv文件.这是一个简单的例子:

import csv
import itertools

fields = [ 'org', '2015', '2014', '2013' ]
dw     = { 'orgname1': { '2015' : 2, '2014' : 1, '2013' : 1 },
           'orgname2': { '2015' : 1, '2014' : 2, '2013' : 3 },
           'orgname3': { '2015' : 1, '2014' : 3, '2013' : 1 }
        }

with open("test_output.csv", "wb") as f:
    w = csv.writer( f )
    years = dw.values()[0].keys()
    for key in dw.keys():
        w.writerow([key, [dw[key][year] for year in years]])
Run Code Online (Sandbox Code Playgroud)

这让我得到一个包含两列的表:第一列包含orgname; 第二个包含[2,1,1](或子词典中的相应值).我想要一个有四列的表:一个用于 …

python csv dictionary

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

流水线sed调用和多个sed表达式之间的效率是否存在差异?

我对bash中的sed效率有疑问.我有一系列流水线的sed语句,例如:

var1="Some string of text"

var2=$(echo "$var1" | sed 's/pattern1/replacement1/g' | sed 's/pattern2/replacement2/g' | sed 's/pattern3/replacement3/g' | sed 's/pattern4/replacement4' | sed 's/pattern5/replacement5/g')
Run Code Online (Sandbox Code Playgroud)

假设没有输入依赖于早期sed管道的编辑输出,我最好用表达式语句编写上面的脚本吗?例如:

var2=$(echo "$var1" | sed -e's/pattern1/replacement1/g' -e's/pattern2/replacement2/g' -e's/pattern3/replacement3/g' -e's/pattern4/replacement4/g' -e's/pattern5/replacement5/g')
Run Code Online (Sandbox Code Playgroud)

这里有效率吗?

regex bash performance sed

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

BeautifulSoup HTMLParseError

Python新手,有一个简单的情境问题:

尝试使用BeautifulSoup来解析一系列页面.

from bs4 import BeautifulSoup
import urllib.request

BeautifulSoup(urllib.request.urlopen('http://bit.ly/'))
Run Code Online (Sandbox Code Playgroud)

追溯 ...

html.parser.HTMLParseError: expected name token at '<!=KN\x01...

使用Python 3.2在64位Windows上运行.

我需要机械化吗?(这将需要Python 2.X)

python beautifulsoup web-scraping

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

在bash中使用20g文件

关于代码性能的问题:我正在尝试针对~20g文本文件运行~25个正则表达式规则.脚本应该输出匹配到文本文件; 每个正则表达式规则生成自己的文件.请参阅下面的伪代码:

regex_rules=~/Documents/rulesfiles/regexrulefile.txt
for tmp in *.unique20gbfile.suffix; do
    while read line
    # Each $line in the looped-through file contains a regex rule, e.g.,
    # egrep -i '(^| )justin ?bieber|(^| )selena ?gomez'
    # $rname is a unique rule name generated by a separate bash function
    # exported to the current shell.
        do
        cmd="$line $tmp > ~/outputdir/$tmp.$rname.filter.piped &"
        eval $cmd
    done < $regex_rules
done
Run Code Online (Sandbox Code Playgroud)

几个想法:

  • 有没有办法循环文本文件一次,评估所有规则并一次性拆分到单个文件?这会更快吗?

  • 我应该使用不同的工具来完成这项工作吗?

谢谢.

regex unix bash performance grep

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

Bash:支持扩展优先级和循环范围

谷歌用了一个小时左右的时间对以下内容进行了简单的解释.在什么时候:

for i in $(eval echo "{01..30}"); do
    echo $i
done
Run Code Online (Sandbox Code Playgroud)

...... Bash会评估支架的'..'组件吗?

谢谢,

扎克

bash shell operators operator-precedence

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