python csv各种案例

# -*- coding: utf-8 -*-

import csv

def one1():
	#第一种方式读取含第一行所有的csv文件,默认按每行列表形式输出
	with open("test2.csv", "r", encoding="gbk") as f:
		reader = csv.reader(f)
		for i in reader:
			print(i)


def one2():
	# 指定哪一行不输出,其它默认按列表一行一行的输出
	with open("test2.csv", "r", encoding="gbk") as f:
		reader = csv.reader(f)
		#一个next跳过一行
		next(reader)
		for i in reader:
			print(i)


def one3():
	#取其中列,每列一行按字典格式输出
	with open("test2.csv", "r", encoding="gbk") as f:
		reader = csv.reader(f)
		#用dictreader不会包含第一行标题
		reader = csv.DictReader(f)
		for i in reader:
			value = {"服务器正面要贴的标签":i['服务器正面要贴的标签'], "交换机网线上面的头要贴的标签":i['交换机网线上面的头要贴的标签']}
			print(value)


def one4():
	#写入csv文件
	header = ["username", "age", "height"]
	# 要写入的文件为元组类型
	values = [('张三',21, 180), ('李四',27, 180), ('小猎',22, 180)]
	# newline解决默认\n问题,这样就没有换行了
	with open("write_csv.csv", 'w', encoding="utf-8", newline="") as f:
		writer = csv.writer(f)
		writer.writerow(header)
		writer.writerows(values)


def one5():
	# 这样写入csv文件
	header = ["username", "age", "height"]
	# 要写入的文件为字典类型
	values = [
		{'username': '张三', 'age': 23, 'height': 180},
		{'username':'李四', 'age': 22, 'height': 180},
		{'username':'小猎', 'age': 21, 'height': 180}
	]
	# newline解决默认\n问题,这样就没有换行了
	with open("write_csv.csv", 'w', encoding="utf-8", newline="") as f:
		#这里直接写入头一行标题
		writer = csv.DictWriter(f, header)
		writer.writeheader()
		writer.writerows(values)


if __name__ == '__main__':
    one5()
### 使用Python编写爬虫并存储数据至CSV文件 #### 创建简单的Web爬虫 为了创建一个能够抓取网页内容并将结果保存到CSV文件中的程序,可以采用`requests`库来获取页面内容,并利用`BeautifulSoup`进行HTML解析。下面是一个基本的例子: ```python import requests from bs4 import BeautifulSoup import csv url = &#39;http://example.com&#39; # 替换成目标网站URL response = requests.get(url) html_content = response.text soup = BeautifulSoup(html_content, &#39;html.parser&#39;) ``` 这段代码首先定义了一个要访问的目标网址,接着发送HTTP请求得到响应对象,从中提取出文本形式的HTML源码,最后使用BeautifulSoup解析这些HTML文档[^1]。 #### 数据抽取逻辑 假设现在需要从网页上收集特定的信息项(比如标题),可以通过查找对应的标签结构完成这一过程: ```python titles = [] for item in soup.find_all(&#39;div&#39;, class_=&#39;title&#39;): # 假设每个条目的标题都在<div>内且class="title" title_text = item.string.strip() titles.append(title_text) print(f&#39;Total {len(titles)} items found.&#39;) ``` 这里通过遍历所有的指定类名下的`<div>`元素找到所有可能包标题的地方,并将其字符串化处理后加入列表中等待后续操作[^5]。 #### 将数据写入CSV文件 当已经获得了所需的数据之后就可以考虑如何把这些信息记录下来了。对于本案例而言,选择将它们存放到本地磁盘上的CSV文件里会是个不错的选择之一: ```python with open(&#39;output.csv&#39;, mode=&#39;w&#39;, newline=&#39;&#39;, encoding=&#39;utf-8&#39;) as file: writer = csv.writer(file) header = [&#39;Title&#39;] # 定义表头 writer.writerow(header) for row_data in titles: data_row = [row_data] writer.writerow(data_row) print("Data has been successfully written to output.csv.") ``` 上述片段展示了怎样打开一个新的CSV文件用于写入模式(`mode=&#39;w&#39;`),并通过调用`csv.writer()`函数实例化一个writer对象来进行实际的操作;此外还指定了编码方式为UTF-8以支持更多字符集[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

项目工程师余工

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值