python 函數中所有print保存csv_python for循環print怎樣才能輸出csv呢

import csv,re

def search(req,line):

text = re.search(req,line)

if text:

data = text.group(1)

else:

data = 'no'

return data

csvfile = file('serp_html.csv','rb')

reader = csv.reader(csvfile)

'''輸出百度搜索結果數據:當前關鍵詞,排名,排名網站,百度url(需轉義后才是真實的url),標題'''

for line in reader:

word = line[0]

html = line[1]

number = search(r'id="(\d+)"',html)

domain = search(r'(.*?)/.*',html)

bdurl = search(r'href="(http://www.baidu.com/link\?url=[^"]*?)"',html)

title = search(r'"title":"([^"]*?)"',html)

print '%s,%s,%s,%s,%s' % (word,number,domain,bdurl,title)

以上是一個繼承程序,運行后能print出正確結果,但是我希望能生成csv報表文件,嘗試修改for為函數失敗。

小菜鳥一枚,不知道怎么搞了,求大神指點

可以這樣import csv,re

def search(req,line):

text = re.search(req,line)

if text:

data = text.group(1)

else:

data = 'no'

return data

reuslts = []

result_csv = file('new_file.csv', 'wb')

result_csv_writer = csv.writer(result_csv)

'''輸出百度搜索結果數據:當前關鍵詞,排名,排名網站,百度url(需轉義后才是真實的url),標題'''

# 保存標題

result_csv_writer.writerow(['關鍵詞', '排名', '排名網站', '百度url', '標題'])

for line in reader:

word = line[0]

html = line[1]

number = search(r'id="(\d+)"',html)

domain = search(r'(.*?)/.*',html)

bdurl = search(r'href="(http://www.baidu.com/link\?url=[^"]*?)"',html)

title = search(r'"title":"([^"]*?)"',html)

reuslts.append((word, number, domain, bdurl, title))

//print '%s,%s,%s,%s,%s' % (word,number,domain,bdurl,title)

# 保存多行

result_csv_writer.writerows(reuslts)

result_csv.close()

代碼未測試,有問題請簡單修改

玩蛇網文章,轉載請注明出處和文章網址:https://www.iplaypy.com/wenda/wd13784.html

相關文章 Recommend

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/536909.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/536909.shtml
英文地址,請注明出處:http://en.pswp.cn/news/536909.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

java中具有繼承關系的類及其對象初始化順序

先說結論對于具有繼承關系的類,它們的類和對象構造順序為:父類的類構造器() -> 子類的類構造器() -> 父類成員變量的賦值和實例代碼塊 -> 父類的構造函數 -> 子類成員變量的賦值和實例代碼塊 -> 子類的構造函數。 實驗代碼如下&#xff1…

mysql varchar 2000能存_mysql 數據庫 varchar 到底可以存多少數據呢,長文慎入

一、關于UTF-8 UTF-8 Unicode Transformation Format-8bit。是用以解決國際上字符的一種多字節編碼。 它對英文使用8位(即一個字節),中文使用24位(三個字節)來編碼。 UTF-8包含全世界所有國家需要用到的字符,是國際編碼,通用性強。 UTF-8編碼…

教程 | 如何利用C++搭建個人專屬的TensorFlow

在開始之前,首先看一下最終成型的代碼: 分支與特征后端(https://github.com/OneRaynyDay/autodiff/tree/eigen)僅支持標量的分支(https://github.com/OneRaynyDay/autodiff/tree/master)這個項目是我與 Min…

docker kali安裝mysql_kali安裝docker(有效詳細的教程) ——vulhub漏洞復現 001

前記:博主有著多次安裝docker的豐富經驗,曾經為了在kali成功安裝docker花費不少時間。在kali2016.3一直到最新的kali2019.4都通吃!所以跟著下面的步驟走,絕對不會出錯。(該機子此前沒裝過docker,并且配置好了kali更新源…

PDF文件如何轉成markdown格式

百度上根據pdf轉makrdown為關鍵字進行搜索,結果大多數是反過來的轉換,即markdown文本轉PDF格式。 但是PDF轉markdown的解決方案很少。 正好我工作上有這個需求,所以自己實現了一個解決方案。 下圖是一個用PDF XChange Editor打開的PDF文件&am…

kangle支不支持PHP_【轉載】PHP調用kangle的API

摘要:根據管理的API公布寫了一個類封裝了一個操作集合,這是一個kangleAPI的一個封...根據管理的API公布寫了一個類封裝了一個操作集合,這是一個kangleAPI的一個封裝吧,是在其他地方看到的,接口包含獲取easypanel的信息…

ES6 學習筆記(一)let,const和解構賦值

let和const let和const是es6新增的兩個變量聲明關鍵字,與var的不同點在于: (1)let和const都是塊級作用域,在{}內有效,這點在for循環中非常有用,只在循環體內有效。var為函數作用域。 &#xff0…

mysql數據庫容量和性能_新品速遞丨容量盤性能提升超 300%,數據庫支持 MySQL 8.0...

2關系型數據庫 MySQL Plus支持 MySQL 8.0 內核及 XtraBackup 物理在線遷移方式關系型數據庫服務 MySQL Plus 發布新版本 1.0.6 , 新增多項功能,提升了集群自動化運維能力。主要升級有:- 支持 MySQL 8.0 內核:根據官方測試&#xf…

10. Python面向對象

Python從設計之初就已經是一門面向對象的語言,正因為如此,在Python中創建一個類和對象是很容易的。如果接觸過java語言同學應該都知道,Java面向對象三大特征是:封裝、繼承、多態。Python面向對象也有一些特征,接下來我…

mysql聚簇索引 和主鍵的區別_[MySQL] innoDB引擎的主鍵與聚簇索引

MysqL的innodb引擎本身存儲的形式就必須是聚簇索引的形式,在磁盤上樹狀存儲的,但是不一定是根據主鍵聚簇的,有三種情形:1. 有主鍵的情況下,主鍵就是聚簇索引2. 沒有主鍵的情況下,第一個非空null的唯一索引就是聚簇索引3. 如果上面都沒有,那么就是有一個隱藏的row-id作為聚簇索引…

前端頁面:一直報Cannot set property 'height' of undefined

1、出現錯誤的例子,只拷貝了項目中關鍵出現問題的部分 例子中明明寫了styleheight:16px這個屬性,但是為什么還說height未定義呢 通過打印發現:cks.each(function () { autoTextAreaHeight($(this)); });中的$(this)取出來…

mysql表在線轉成分區表_11g普通表在線轉換分區表

本帖最后由 燈和樹 于 2016-5-4 14:58 編輯由于業務系統數據量增大,對其用戶表在線完成分區表轉換過程,記錄如下,11g數據庫支持。創建過渡分區表根據USER_ID創建分區表CREATE TABLE SDP_SMECD.TEST_T_USER_ID(USER_ID NUMBER(13) …

tiger4444/rabbit4444后綴勒索病毒怎么刪除 能否百分百恢復

上海某客戶中了tiger4444的勒索病毒,找到我們后,一天內全部恢復完成。說了很多關于勒索病毒的事情,也提醒過大家,可總是有人疏忽,致使中招后,丟錢丟面子,還丟工作。 那么要怎樣預防呢與處理呢&a…

mysql遠程一會不用卡住_連接遠程MySQL數據庫項目啟動時,不報錯但是卡住不繼續啟動的,...

連接遠程MySQL數據庫項目啟動時,不報錯但是卡住不繼續啟動的,2018-03-12 17:08:52.532DEBUG[localhost-startStop-1]o.s.beans.factory.support.DefaultListableBeanFactory.doGetBean():251 -Returning cached instance of singleton bean ‘org.spring…

GPT-5、開源、更強的ChatGPT!

年終歲尾,正值圣誕節熱鬧氣氛的OpenAI寫下了2024年的發展清單。 OpenAI聯合創始人兼首席執行官Sam Altman在社交平臺公布,AGI(稍晚一些)、GPT-5、更好的語音模型、更高的費率限制; 更好的GPTs;更好的推理…

CentOS_7 安裝MySql5.7

2019獨角獸企業重金招聘Python工程師標準>>> 下載mysql的源 wget http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm 安裝yum庫 yum localinstall -y mysql57-community-release-el7-7.noarch.rpm 安裝MySQL yum install -y mysql-community-…

python查詢mysql decimal報錯_python讀取MySQL數據表時,使用ast模塊轉換decimal格式數據的坑...

概述MySQL中常用的數據格式有tinyint()、int()、float()、double()、decimal() 、varchar、enum()、datetime;小數格式中decimal比較常用,因為更加精確,這里就以decimal為例。從MySQL中讀取了一行數據,內容為:(17479, datetime.da…

性能測試總結(一)---基礎理論篇(轉載)

隨著軟件行業的快速發展,現代的軟件系統越來越復雜,功能越來越多,測試人員除了需要保證基本的功能測試質量,性能也隨越來越受到人們的關注。但是一提到性能測試,很多人就直接連想到Loadrunner。認為LR就等于性能測試&a…

java listen_JavaWeb之Filter、Listener

昨天和大家介紹了一下JSON的用法,其實JSON中主要是用來和數據庫交互數據的。今天給大家講解的是Filter和Listener的用法。一、Listenner監聽器1.1、定義Javaweb中的監聽器是用于監聽web常見對象HttpServletRequest,HttpSession,ServletContext。1.2、監聽器的作用監…

BFC的概念及作用

在了解什么是BFC之前,首先得明白什么是Box , Formatting Context (一個決定如何渲染文檔的容器)的概念 Box: CSS布局的基本單位 Box是 CSS 布局的對象和基本單位, 直觀點來說, 就是一個頁面是由很多個 Box組成的&#…