我有一个文本文件,其中一些单词打印在所有大写.我希望能够将文本文件中的所有内容转换为小写,使用sed.这意味着第一句话将会读到,'我有一个文本文件,其中一些单词都打印在所有大写字母中.'
所以,我碰巧注意到last.fm正在我的地区招聘,因为我认识一些在 那里工作的人,但我申请了.
但我想我最好先看一下目前的工作人员.
那个页面上的每个人都有一个可爱/聪明/愚蠢的背带,比如"生命不是一千倍太短,我们无法忍受自己?".事实上,这是非常有趣的,直到我达到这个:
perl -e'print+pack+q,c*,,map$.+=$_,74,43,-2,1,-84, 65,13,1,5,-12,-3, 13,-82,44,21, 18,1,-70,56, 7,-77,72,-7,2, 8,-6,13,-70,-34'
Run Code Online (Sandbox Code Playgroud)
我无法抗拒粘贴到我的终端(也许是一种愚蠢的事情),但它打印出来:
只是另一个Last.fm黑客,
我认为弄清楚Perl单线程如何工作会相对容易.但我真的无法理解文档,我不知道Perl,所以我甚至不确定我是否正在阅读相关文档.
所以我尝试修改数字,这让我无处可去.所以我认为这真的很有趣,值得一试.
所以,"它是如何工作的"有点模糊,我的问题主要是,
那些数字是多少?为什么有负数和正数,否定性或积极性是否重要?
运营商的组合是+=$_做什么的?
在pack+q,c*,,做什么?
尽管尝试掌握grep和相关的GNU软件,但我还没有接近掌握正则表达式.我喜欢它们,但我发现它们有点像眼睛一样.
我想这个问题对某些人来说并不难,但我花了好几个小时试图弄清楚如何在我最喜欢的书中搜索超过一定长度的单词,最后,我想出了一些非常丑陋的代码:
twentyfours = [w for w in vocab if re.search('^........................$', w)]
twentyfives = [w for w in vocab if re.search('^.........................$', w)]
twentysixes = [w for w in vocab if re.search('^..........................$', w)]
twentysevens = [w for w in vocab if re.search('^...........................$', w)]
twentyeights = [w for w in vocab if re.search('^............................$', w)]
Run Code Online (Sandbox Code Playgroud)
...每条长度的一条线,从一定长度到另一条长度.
我想要的是能够说'给我每个词的长度超过八个字母.' 我该怎么办?
我正在尝试自学Python,我已经意识到我真正学习东西的唯一方法是阅读实际的程序.教程/手册只会让我感到非常困惑.
这只是我的学习风格,我就像我学过的所有东西(包括自然语言 - 我已经设法通过进入实际的'流动'来教会自己三个).
古典音乐曾经有过"色域"的概念 - 以艺术的方式演奏整个乐器系列.我猜这里可能有一些写得很好的脚本真正展示了该语言的每个特性.无论他们做什么都没关系,我只想通过自己阅读程序来开始学习Python.
我记得几年前我研究了一些LISP时遇到过类似的方法.这是一本由Springer Verlag出版的书,仅由人工智能程序组成,可以阅读它们的教学功绩.
我这样做了:
from urllib import urlopen
import nltk
url = http://myurl.com
html = urlopen(url).read()
cleanhtml = nltk.clean_html(html)
Run Code Online (Sandbox Code Playgroud)
我现在在python中有一个长字符串,其中充满了由windows换行定期中断的文本/r/n,我只想使用正则表达式从字符串中删除所有出现的/ r/n.首先,我想用空格替换它.因此,我这样做了:
import re
textspaced = re.sub("'\r\n'", r"' '", cleanhtml)
Run Code Online (Sandbox Code Playgroud)
......它没用.那么我做错了什么?
曾几何时,我发现这个问题很有趣.
今天我决定玩那本书的文字.
我想在此脚本中使用正则表达式.当我在西里尔文本上使用脚本时,它会清除所有西里尔字符,只留下标点符号和空格.
#!/usr/bin/env python3.2
# coding=UTF-8
import sys, re
for file in sys.argv[1:]:
f = open(file)
fs = f.read()
regexnl = re.compile('[^\s\w.,?!:;-]')
rstuff = regexnl.sub('', f)
f.close()
print(rstuff)
Run Code Online (Sandbox Code Playgroud)
在这个答案中已经完成了一些非常相似的事情.
基本上,我只是希望能够指定一组不是字母,字母数字或标点符号或空格的字符.
我有:
from __future__ import division
import nltk, re, pprint
f = open('/home/a/Desktop/Projects/FinnegansWake/JamesJoyce-FinnegansWake.txt')
raw = f.read()
tokens = nltk.wordpunct_tokenize(raw)
text = nltk.Text(tokens)
words = [w.lower() for w in text]
f2 = open('/home/a/Desktop/Projects/FinnegansWake/catted-several-long-Russian-novels-and-the-NYT.txt')
englishraw = f2.read()
englishtokens = nltk.wordpunct_tokenize(englishraw)
englishtext = nltk.Text(englishtokens)
englishwords = [w.lower() for w in englishwords]
Run Code Online (Sandbox Code Playgroud)
这是直接来自NLTK手册.我接下来想要做的是比较vocab一套详尽的英语单词,比如OED,并提取差异 - 一组没有,也可能永远不会出现在OED中的Finnegans唤醒词.我更像是一个口头的人,而不是一个数学导向的人,所以我还没有想出如何做到这一点,并且手册对于我实际上不想做的事情进行了太多细节.不过,我假设它只是一两行代码.
" 了解大家好的Haskell "一书中的"部分函数"一章包含以下代码:
multThree :: (Num a) => a -> a -> a -> a
multThree x y z = x * y * z
ghci> let multTwoWithNine = multThree 9
ghci> multTwoWithNine 2 3
54
ghci> let multWithEighteen = multTwoWithNine 2
ghci> multWithEighteen 10
180
Run Code Online (Sandbox Code Playgroud)
我目前正在使用Python中的functools库,并设法使用它复制这些函数的行为.
from functools import partial
def multThree(x,y,z):
return x * y * z
>>> multTwoWithNine = partial(multThree,9)
>>> multTwoWithNine(2,3)
>>> multWithEighteen = partial(multTwoWithNine,2)
>>> multWithEighteen(10)
180
Run Code Online (Sandbox Code Playgroud)
我现在要做的一件事是看看我是否可以从同一本书章节中复制一些更有趣的高阶函数,例如:
zipWith' :: (a -> b -> c) …Run Code Online (Sandbox Code Playgroud) 好吧,所以我很擅长用多个"for"来编写Python列表推导,但我想要更好.我想知道线路是否确定
>>> [S[j]+str(i) for i in range(1,11) for j in range(3) for S in "ABCD"]
Run Code Online (Sandbox Code Playgroud)
可以修改以返回类似的东西 ["A1","B1","C1","D1","A2","B2","C2","D2"...(etc.)]
如果没有,如果存在可以返回相同列表的列表推导,即,"ABCD"的所有组合的字符串列表和从1到10的数字.
我有
sed -e '/^ *[0-9]\+ *$/d' <oldtextfile >newtextfile
Run Code Online (Sandbox Code Playgroud)
...我在文本中使用的文件我已经从PDF中复制并粘贴以删除页码.但是,我还需要删除脚注编号,所以我需要sed通过删除一段时间后发生的任何数字来修改上面的单行代码,不幸的是我没有耐心等待sed.有人可以帮我吗?