data_write = csv.writer(file)
时间: 2024-02-09 20:07:42 浏览: 23
这行代码是创建一个csv写入对象,它用于将数据写入到指定的CSV文件中。其中,"file"是CSV文件的句柄,即文件对象,它是通过open函数打开的。csv.writer函数返回的是一个csv写入对象,可以使用它的writerow方法将一行数据写入到CSV文件中。在本例中,使用data_write.writerow方法将电影的名称、上映时间、导演、评分和评论人数写入到CSV文件中。
相关问题
def data_write_csv(file_name, datas): file_csv = codecs.open(file_name,'w+','utf-8') writer = csv.writer(file_csv, delimiter=',', quoting=csv.QUOTE_MINIMAL) for data in datas: writer.writerow(data) print("write succ!!")
这段代码定义了一个名为 `data_write_csv` 的函数,用于将数据写入到 CSV 文件中。具体来说,该函数接受两个参数:`file_name` 表示要写入的文件名,`datas` 表示要写入的数据列表。
在函数内部,首先使用 `codecs.open` 函数以写入和读取模式打开名为 `file_name` 的文件,编码格式为 UTF-8,并将文件对象赋值给变量 `file_csv`。接着,使用 `csv.writer` 函数创建一个 `writer` 对象,该对象用于将数据写入到 CSV 文件中。在创建 `writer` 对象时,使用 `,` 作为列分隔符,并将 `csv.QUOTE_MINIMAL` 设置为引用风格。
接下来,使用 `for` 循环遍历 `datas` 列表中的每一个数据,并使用 `writer.writerow` 方法将其写入到 CSV 文件中。
最后,在数据写入完成后,在控制台输出 `write succ!!` 表示写入成功。
需要注意的是,在实际使用中,可能需要根据具体的需求来设置 CSV 文件的分隔符、引用字符和引用风格等参数。另外,在文件操作完成后,需要调用 `file_csv.close()` 函数关闭文件对象。
import numpy as np import csv import pandas as pd import numpy as npjk import matplotlib.pyplot as plt plt.rcParams['font.sans-serif']=['SimHei']#解决图标中汉字显示问题 plt.rcParams['axes.unicode_minus']=False#解决图标中汉字显示问题 from urllib.request import urlopen,Request from bs4 import BeautifulSoup #云计算2113方宇-2021058226 headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36'} url = 'https://search.jd.com/Search?keyword=%E8%93%9D%E7%89%99%E9%BC%A0%E6%A0%87&enc=utf-8&wq=%E8%93%9D%E7%89%99%E9%BC%A0%E6%A0%87&pvid=405a663911e84dd3822389ef5b97c147' response = Request(url,headers=headers) res = urlopen(response) data = res.read().decode('utf-8') soup = BeautifulSoup(data,'html.parser') ddd=soup.find('ul',class_="gl-warp clearfix") bbb=ddd.select('li>.gl-i-wrap>.p-price>strong>i')#价格 ccc=ddd.select('li>.gl-i-wrap>.p-shop>span>a')#店名 #云计算2113方宇2021058226 get_rmb_date = [] for i in bbb: get_rmb_date.append(i.text) get_shop_date = [] for i in ccc: get_shop_date.append(i.text) data = [] for i in range(len(get_shop_date)): temp = [] temp.append(get_shop_date[i]) temp.append(get_rmb_date[i]) data.append(temp) print(data) #云计算2113-方宇2021058226 f = open('D:/mypython/mycode/2021058226.csv','w',encoding='utf-8') csv_write = csv.writer(f) csv_write.writerow(['商品店家','商品价格']) for i in data: csv_write.writerow(i) f.close() #云计算2113方宇-2021058226 csv_file ='D:/mypython/mycode/2021058226.csv' csv_data=pd.read_csv(csv_file,low_memory=False) csv_df=pd.DataFrame(csv_data) dfl=csv_df.head(n=10) print(dfl) plt.figure(figsize = (10,6)) x = np.arange(10) y = np.array(dfl['商品店家']) xticks = list(dfl['商品价格']) print(x,y,xticks) p=[0,1,2,3,4,5,6,7,8,9] plt.xticks(p,y,rotation=20) plt.bar(p,xticks,color='red') plt.show()如何将词云柱状图按序排列
如果想将柱状图按照序排列,可以先对数据进行排序,再绘制柱状图。以下是修改后的代码:
```python
import numpy as np
import csv
import pandas as pd
import numpy as npjk
import matplotlib.pyplot as plt
from wordcloud import WordCloud
plt.rcParams['font.sans-serif']=['SimHei']#解决图标中汉字显示问题
plt.rcParams['axes.unicode_minus']=False#解决图标中汉字显示问题
from urllib.request import urlopen,Request
from bs4 import BeautifulSoup
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36'}
url = 'https://search.jd.com/Search?keyword=%E8%93%9D%E7%89%99%E9%BC%A0%E6%A0%87&enc=utf-8&wq=%E8%93%9D%E7%89%99%E9%BC%A0%E6%A0%87&pvid=405a663911e84dd3822389ef5b97c147'
response = Request(url,headers=headers)
res = urlopen(response)
data = res.read().decode('utf-8')
soup = BeautifulSoup(data,'html.parser')
ddd=soup.find('ul',class_="gl-warp clearfix")
bbb=ddd.select('li>.gl-i-wrap>.p-price>strong>i')#价格
ccc=ddd.select('li>.gl-i-wrap>.p-shop>span>a')#店名
get_rmb_date = []
for i in bbb:
get_rmb_date.append(float(i.text))
get_shop_date = []
for i in ccc:
get_shop_date.append(i.text)
# 对数据进行排序
data = sorted(zip(get_shop_date, get_rmb_date), key=lambda x: x[1], reverse=True)
get_shop_date, get_rmb_date = zip(*data)
print(data)
f = open('D:/mypython/mycode/2021058226.csv','w',encoding='utf-8')
csv_write = csv.writer(f)
csv_write.writerow(['商品店家','商品价格'])
for i in data:
csv_write.writerow(i)
f.close()
csv_file ='D:/mypython/mycode/2021058226.csv'
csv_data=pd.read_csv(csv_file,low_memory=False)
csv_df=pd.DataFrame(csv_data)
dfl=csv_df.head(n=10)
print(dfl)
plt.figure(figsize = (10,6))
x = np.arange(10)
y = np.array(dfl['商品店家'])
xticks = list(dfl['商品价格'])
print(x,y,xticks)
p = [0,1,2,3,4,5,6,7,8,9]
plt.xticks(p, y, rotation=20)
plt.bar(p, xticks, color='red')
plt.show()
```
这样,柱状图就会按照商品价格的高低进行排列。