import csv
with open("XXX.csv","a",newline="",encoding='utf-8') as datacsv: # a 是后续可以加入内容,w 参数则是覆盖
#dialect为打开csv文件的方式,默认是excel,delimiter="\t"参数指写入的时候的分隔符
csvwriter = csv.writer(datacsv,dialect = ("excel"))
#csv文件插入一行数据,把下面列表中的每一项放入一个单元格(可以用循环插入多行)
csvwriter.writerow(["A","B","C","D"])
#小插曲
#读取指定目录下的菜单[文件和文件夹]
import os
alist = os.listdir('./') #当前目录的文件夹和文件,返回值是列表
#get it!
利用 xlsxwriter,导出带图片的表格
def write(big_data,my_type):
workbook = xlsxwriter.Workbook("watch_band_%s.xlsx"%my_type)
for key in big_data:
# 从第二行开始,首行留给中文注释
index = 2
data = big_data[key]
worksheet = workbook.add_worksheet(str(key))
# 参数理解: A1,A为列的序列号,1则是行数
worksheet.write("A1", '排名')
worksheet.write("B1", 'ASIN')
worksheet.write("C1", '图片')
worksheet.write("D1", '价格')
worksheet.write("E1", '评分')
worksheet.write("F1", '类别')
worksheet.write("G1", '链接')
worksheet.write("H1", '图片链接')
worksheet.write("I1", '时间')
print(index)
for msg in data:
print(msg)
# 加宽第一列使文本更清晰。
worksheet.set_column('A:A', 30)
print('A' + str(index), '%s' % msg[-4])
worksheet.write('A' + str(index), '%s' % msg[-4])
worksheet.write("B" + str(index), "%s" % msg[2])
# 插入一张图片。
filename='./band_img/%s.jpg' % msg[2]
try:
# 自定义方法
modify_img_site(filename)
worksheet.insert_image('C' + str(index),filename, {'x_scale': 0.5, 'y_scale': 0.5})
except:
worksheet.write('C' + str(index), 'none')
worksheet.write('D' + str(index), '%s' % msg[3])
worksheet.write('E' + str(index), '%s' % msg[4])
worksheet.write('F' + str(index), '%s' % msg[1])
worksheet.write('G' + str(index), 'https://www.amazon.com/dp/%s' % msg[2])
worksheet.write('H' + str(index), '%s' % msg[-1])
# worksheet.write('I' + str(index), '%s' % msg[-1])
# 插入一张位偏移图片。
# worksheet.insert_image('B12', 'python.png', {'x_offset': 15, 'y_offset': 10})
# 插入一张缩放了的图片。
# worksheet.write('23', '插入一张缩放了的图片:')
# worksheet.insert_image('B23', 'python.png', {'x_scale': 0.5, 'y_scale': 0.5})
index += 1
workbook.close()
#读取xls,xlsx文件?
import xlrd
ef xlrd_reader():
exce = xlrd.open_workbook('/home/yice/Documents/本尼维产品资料.xls')
# 获取excel中对应的sheet
print('所有sheet名称', exce.sheet_names()) # 获取所有sheet名称
sheets = exce.sheets() # 获取所有sheets
# sheet = exce.sheets()[0] #也可以通过下标去访问某个具体的sheet
sheet1 = exce.sheet_by_name('Sheet1') # 通过sheet名称获取
# sheet2 = exce.sheet_by_index(1) #通过下标获取某个sheet
# 获取sheet中行数和列数
nrows = sheet1.nrows
ncols = sheet1.ncols
print('对应sheet中行数:%d行,列数:%d列' % (nrows, ncols))
data=[]
for msg in range(nrows):
data.append(sheet1.row_values(msg))
# print(sheet1.row_values(msg))
# 获取sheet中整行或整列的数据(数组)
# row1 = sheet1.row_values(3) # 通过下标获取某一行的数据
# col1 = sheet1.col_values(0) # 通过下标获取某一列的数据
# print('某行的数据:', row1)
# print('某列的数据:', col1)
#
# # 获取sheet中某个单元格的数据
# cell_A3 = sheet1.cell(2, 0).value # 第三行第一列
# cell_B2 = sheet1.cell(1, 1).value # 第二行第二列
# cell_C3 = sheet1.cell(2, 2).value # 第三行第三列
# print('第一列第三行:', cell_A3)
# print('第二行第二列:', cell_B2)
# print('第三行第三列:', cell_C3)
#
# # 获取单元格数据类型
# A3_ctype = sheet1.cell(2, 0).ctype # 数字类型
# B2_ctype = sheet1.cell(1, 1).ctype # str类型
# C3_ctype = sheet1.cell(2, 2).ctype # data类型
# print('数字类型:', A3_ctype)
# print('str类型:', B2_ctype)
# print('data类型:', C3_ctype)
return data