當前位置:首頁 » 編程語言 » findpython3

findpython3

發布時間: 2022-05-14 12:42:36

python3 數據查找

import re
#將f指定為你的txt文件的路徑
f='t.txt'
fo=open(f)
reg=r'<\s*(\S+)\s*@'
users=re.findall(reg,fo.read())
print(users)
fo.close()

linux系統下python3和python2用的是一個文件夾來放置模塊嗎

肯定是相互獨立的,你可以在/usr/local/lib目錄下查看是否有python3.x的目錄

如果沒有可以試試下面的:

importsite
foriinsite.getsitepackages():
print(i)

裡面應該有你需要的目錄

Ⅲ Python find()方法,若指定了范圍,start=1,那包含位置為1這的個字元嗎

info為字元串 "abca",而print info.find('3')的意思是查找字元串"abca"中的 字元"3",而不是查找字元串"abca"中索引號為3的字元。
"abca"中不包含"3"當然返回-1。

Ⅳ 請問python3中的re.split與re.findall的區別

你的Python程序輸出結果是對的.

re.split是以re.compile中的正則表達式對字元串進行切分.

re.findall是以re.compile中的正則表達式對字元串進行匹配.

就拿你的例子來說吧,

re.split是以數字為邊界對字元串'one1two2three3four4'進行切分,得到['one','two','three','four','']五個字元串

re.findall是匹配字元串'one1two2three3four4'中的所有數字,得到['1','2','3','4']四個數字

Ⅳ 如何使用python3爬取1000頁百度百科條目

1 問題描述

起始頁面 ython包含許多指向其他詞條的頁面。通過頁面之間的鏈接訪問1000條網路詞條。

對每個詞條,獲取其標題和簡介。


可以看出,其他詞條的格式都遵循hcom/item/xxx的形式

3 實現

# coding=utf-8from urllib import requestfrom bs4 import BeautifulSoupimport reimport tracebackimport time

url_new = set()
url_old = set()
start_url = 'httpm/item/python'max_url = 1000def add_url(url):
if len(url_new) + len(url_old) > 1000: return
if url not in url_old and url not in url_new:
url_new.add(url)def get_url():
url = url_new.pop()
url_old.add(url) return urldef parse_title_summary(page):
soup = BeautifulSoup(page, 'html.parser')
node = soup.find('h1')
title = node.text
node = soup.find('div', class_='lemma-summary')
summary = node.text return title, summarydef parse_url(page):
soup = BeautifulSoup(page, 'html.parser')
links = soup.findAll('a', href=re.compile(r'/item/'))
res = set()
keprefix = 'htt..com'
for i in links:
res.add(keprefix + i['href']) return resdef write2log(text, name='d:/ke-urllib.log'):
with open(name, 'a+', encoding='utf-8') as fp:
fp.write(' ')
fp.write(text)if __name__ == '__main__':
url_new.add(start_url) print('working')
time_begin=time.time()
count = 1
while url_new:
url = get_url() try:
resp = request.urlopen(url)
text = resp.read().decode()
write2log('.'.join(parse_title_summary(text)))
urls = parse_url(text) for i in urls:
add_url(i) print(str(count), 'ok')
count += 1
except:
traceback.print_exc() print(url)
time_end=time.time() print('time elapsed: ', time_end - time_begin) print('the end.')

輸出結果

working1 ok
略983 ok984 ok
time elapsed: 556.4766345024109the end.

將urllib替換為第三方庫requests:

pip install requests

略if __name__ == '__main__':
url_new.add(start_url) print('working')
time_begin = time.time()
count = 1
while url_new:
url = get_url() try: with requests.Session() as s:
resp = s.get(url)
text = resp.content.decode() # 默認'utf-8'
write2log('.'.join(parse_title_summary(text)))
urls = parse_url(text) for i in urls:
add_url(i) print(str(count), 'ok')
count += 1
except:
traceback.print_exc() print(url)
time_end = time.time() print('time elapsed: ', time_end - time_begin) print('the end.')

輸出

略986 ok987 ok988 ok989 ok
time elapsed: 492.8088216781616the end.

一個通用的爬蟲架構包括如下四部分:

  • 調度器

  • URL管理器

  • 網頁下載器

  • 網頁解析器

  • 從以上函數式的寫法也可以看出了。

    下面是面向對象的寫法。

  • $ ls html_downloader.py html_outputer.py html_parser.py spider_main.py url_manager.py

  • 1、spider main

  • # coding=utf-8from ex.url_manager import UrlManagerfrom ex.html_downloader import HtmlDownloaderfrom ex.html_parser import HtmlParserfrom ex.html_outputer import HtmlOutputerimport traceback, timeclass SpiderMain():

  • def __init__(self):

  • self.urls = UrlManager() self.downloader = HtmlDownloader() self.parser = HtmlParser() self.outputer = HtmlOutputer() def crawl(self, url):

  • self.urls.add_url(url)

  • count = 1

  • while self.urls.is_has_url():

  • url = self.urls.get_url() try:

  • page = self.downloader.download(url)

  • data, newurls = self.parser.parse(page) self.urls.add_urls(newurls) self.outputer.write2log(data) print(str(count), 'ok') except:

  • traceback.print_exc() print(str(count), 'failed')

  • count += 1if __name__ == '__main__':

  • spider = SpiderMain()

  • start_url = 'hti.com/item/python'

  • print('crawling')

  • time_begin = time.time()

  • spider.crawl(start_url)

  • time_end = time.time() print('time elapsed:', time_end - time_begin)

  • 2、URL manager

  • # coding=utf-8class UrlManager():

  • def __init__(self, maxurl=1000):

  • self.url_new = set() self.url_old = set() self.max_url = maxurl def add_url(self, url):

  • assert isinstance(url, str) if len(self.url_new) + len(self.url_old) > self.max_url: return

  • if url not in self.url_new and url not in self.url_old: self.url_new.add(url) def add_urls(self, urls):

  • if len(self.url_new) + len(self.url_old) > self.max_url: return

  • for u in urls: self.add_url(u) def get_url(self):

  • t = self.url_new.pop() self.url_old.add(t) return t def is_has_url(self):

  • return self.url_new

  • 3、html downloder

  • # coding=utf-8import requestsclass HtmlDownloader():

  • def download(self, url):

  • resp = requests.get(url) return resp.content.decode()

  • 4、html parser

  • # coding=utf-8from bs4 import BeautifulSoupimport reclass HtmlParser():

  • def __init__(self, keprefix = 'htti.com'):

  • self.keprefix = keprefix def parse(self, page):

  • soup = BeautifulSoup(page, 'html.parser')

  • node = soup.find('h1')

  • title = node.text

  • node = soup.find('div', class_='lemma-summary')

  • summary = node.text

  • data = title + summary


  • nodes = soup.findAll('a', href=re.compile(r'/item/'))

  • urls = set() for i in nodes:

  • urls.add(self.keprefix + i['href']) return data, urls

  • 5、 html outputer

  • # coding=utf-8class HtmlOutputer():

  • def write2log(self, text, name='d:/ke-oop.log'):

  • with open(name, 'a+', encoding='utf-8') as fp:

  • fp.write(' ')

  • fp.write(text)

Ⅵ python find什麼意思

find 方法是字元串類型對象帶有的方法;

它可以從一個字元串中,找到另一個字元串;

如果找到了,則返回索引;

如果沒有找到,則返回 -1;


代碼:

str1 = "this is string example....wow!!!"
str2 = "exam"
print(' ', str1.find(str2))

運行效果:

Ⅶ Python3 請問這個代碼哪裡錯了

這個可能是類型的問題。你將input()改成raw_input()就可以解決問題。


不過似乎python3沒有raw_input了。


你檢查一下你的state=input()中的類型。

print (type(state))


你再對比一個你的cities中的keys的類型

print(type((cities.keys())[0]))
printcities['CA']

--

如果兩者的類型有差異,你就需要轉換一下。

比如將state轉換一下

state=str(state)


此外你輸入的時候,有沒有加引號? 這個也是要考慮的問題。


剛剛在linux上安裝了一個python3,我測試的結果是,你輸入state時,不要加引號。比如直接輸入大寫的CA就會出San Francisco

程序沒有問題。只是python2與python3輸入的時候,python2需要引號,python3不需要。

Ⅷ python 里 find函數怎麼用

題主最好給出一個稍微具體點的應用場景,可能有更加優化的方法。 我自己構造一個簡單的例子如下: matlab: A = find(B>0) python: A = [i for i in range(len(B)) if B[i]>0] 另外注意,matlab里的數組索引從1開始,和python不同。

Ⅸ 解釋python中.find(" ")函數的作用:

python中遇到不明白的地方,可以試試help

這里要查看find的作用,可以鍵入help(str.find),然後得到提示如下:

Helponmethod_descriptor:

find(...)
S.find(sub[,start[,end]])->int

,
suchthatsubiscontainedwithinS[start:end].Optional
.

Return-1onfailure.

解釋要點大致如下:

find()方法檢測字元串S中是否包含子字元串sub,如果指定start(開始) 和 end(結束)范圍,則檢查是否包含在指定范圍內,如果包含子字元串返回開始的索引值(如果包含多個字串,只返回最左邊出現的索引值),查找失敗返回-1。以本題為例:

s="abcd1234"

s.find("cd"),在字元串s中查找字串"cd"第一次出現時s中的索引值,因為索引從0開始,所以結果為2,注意s中出現多次cd的情況,例如:

s="abcd1234cd"

s.find("cd")的結果依然是2,找不到時返回-1,比如:

s="1234"

s.find("cd")的結果為-1

Ⅹ 用python3分別寫出一個類似find和grep功能的函數

grep用的少,不熟悉,給個find的你參考一下吧

#!/usr/bin/envpython3.6
importos
importsys


deffind(args=sys.argv):
ignore='-i'inargs
dirname='.'ifargs[1].startswith('-')elseargs[1]
fname=args[args.index('-name')+1].strip('"'')
forr,ds,fsinos.walk(dirname):
forfninfs:
iffn==fnameor(ignoreandfn.lower()==fname.lower()):
print(os.path.join(r,fn))

defmain():
find()

if__name__=='__main__':
main()
熱點內容
網上自學編程 發布:2022-05-22 19:48:46 瀏覽:441
免費壓縮圖片 發布:2022-05-22 19:48:40 瀏覽:778
水發集團企業黨建宣傳片腳本 發布:2022-05-22 19:45:02 瀏覽:709
短鏈接源碼 發布:2022-05-22 19:42:39 瀏覽:297
電子表格關聯ftp文件夾 發布:2022-05-22 19:42:24 瀏覽:815
版本文件伺服器地址怎麼填 發布:2022-05-22 19:40:49 瀏覽:110
android監聽軟鍵盤彈出 發布:2022-05-22 19:39:29 瀏覽:5
c語言函數調用數組 發布:2022-05-22 19:36:39 瀏覽:35
android查看log 發布:2022-05-22 19:36:20 瀏覽:899
本田皓影哪個配置是紅色內飾 發布:2022-05-22 19:32:02 瀏覽:22