当前位置: 首页 > news >正文

导购网站自己做电商/网站模板平台资源

导购网站自己做电商,网站模板平台资源,公司注册代理注册,哪些网站教你做系统快捷定位目录问题描述python读写文件基本操作网络上的解决方法我遇到的问题我的尝试解决解决过程解决思路使用python中to_csv()解决乱码问题需要注意根本原因问题描述 python读写文件基本操作 在数据过滤操作中,常常需要对源文件(source)中…

快捷定位目录

  • 问题描述
    • python读写文件基本操作
    • 网络上的解决方法
    • 我遇到的问题
  • 我的尝试解决
    • 解决过程
      • 解决思路
  • 使用python中to_csv()解决乱码问题需要注意
  • 根本原因

问题描述

python读写文件基本操作

在数据过滤操作中,常常需要对源文件(source)中的数据进行读取、分析、判别处理,而后再写入新的文件。在文件的读取上可以是.xlsx也可以是.csv,使用pandas如:pd.read_excel("source.xlsx"),可以对excel文件轻松读取,同样也可以读取csv文件。但在文件的写入上,python中excel文件写入比较复杂,不在赘述;相对而言csv文件较为完善,操作较为方便:首先建立一个字典变量a,而后使用b=DataFrame(a)将该变量转化为数据框架变量b,调用b的to_csv()函数写入文件即可,如下代码块所示:

import pandas as pd
out_value = {}
out_value["C_item1"] = [2 ,"投桃报李", 456.3]   # 此处赋值右侧变量必须为列表
out_value["C_item2"] = [2,"投桃报李", 456.3]  # 相当于横向列标题MaxHop下有三个值
dataframe = pd.DataFrame(out_value)
dataframe.to_csv("out.csv", mode='a', index=False, sep=',', header=False) 
# 说明:文件名, 模式追加模式加入新数据,不填写列表左侧表示行数的index,分隔符,不填写头题即:"C_item1""C_item2"等

网络上的解决方法

但需要写入的数据(或数据的一部分)是中文时,会出现中文变成乱码的情况,网上一般的解决办法是添加:encoding="utf_8_sig",即

dataframe.to_csv("out.csv", mode='a', index=False, sep=',', header=False, encoding="utf_8_sig")

我遇到的问题

在写入文件后,我的文件依然中是中文乱码,即便encoding="utf_8_sig"已经添加,但没用。


经过探索可能的原因是:

  1. .csv文件是我自己定义的,不是由python软件生成的
  2. .csv文件在追加写入之前我改动一下。因为我的文件是一条条写入,我不希望每次写入都带有header,但我又希望文件有header,所以我就手动的加了一行header。

图片替换文本
我的文件效果与源代码

我的尝试解决

解决过程

  1. 起初我认为是encoding的问题,但没效果
    用网上的经验,我添加了encoding="utf_8_sig"但没有任何效果。
    又猜想是否是dataframe.to_csv()参数顺序的问题,所以我将encoding参数提前,依旧没用
    又猜想是不是我参数过多,网上经验的示例参数都蛮少的:依旧没用
	使用 df.to_csv(file_name2, encoding='utf_8_sig') 后中文乱码问题解决了df.to_csv(file_name3,encoding="utf_8_sig")
  1. 猜想是不是代码首部没有指定编码格式的问题,添加后没有用
#!/usr/bin/python
# -*- coding: utf-8 -*-
  1. 陷入僵局,我只好把网上的经验代码完全照搬过来,结果真的没乱码
    直接原因就是产生了新的文件,在不修改产生的文件的前提下,继续追加写入,也是没有问题的:

    图片替换文本
    照搬网上经验产生的效果

    但一旦修改该文件,再次写入就又出现问题了:

    图片替换文本
    修改out文件,追加写入后,产生的效果

    我仅仅手动添加了一个单元格的字符,再次追加后追加内容的中文变为乱码,并且原有的内容也发生了改变(每行的内容全都挤压在了行首的单元格中)就很奇怪。

解决思路

奇怪归奇怪 ,但总算有解决问题的思路了。我就不修改就行了
用python产生csv文件,先写入一个行标题的header; 再按照业务的要求逐行追加数据内容。

使用python中to_csv()解决乱码问题需要注意

  1. 添加encoding="utf_8_sig",遇到乱码第一时间添加该参数,查看效果。
  2. 不要自定义csv文件,要尽量利用python自主产生的。mode='a' / mode='w',python会主动监测目标路径是否有你命名的文件存在,若不存在将自主创建。
  3. 当文件写操作没有全部完成时,千万不要对文件进行修改。稍微的修改可能使已有行的内容格式发生变化,并可能导致接下来继续写的中文内容变为乱码。
    即使你有像我一样仅需要一个行标题,而接下来一行行的追加时,又不需要标题的需求,你可以先写入一行标题,接下来再进行业务追加,写标题时只需要将行标题的内容指定为空list即可:
out_value[title[i]] = []
  1. 写入文件时字典变量内容填充的长度必须一致。
out_value["C_item1"] = [2 ,"投桃报李", 456.3]   # 此处赋值右侧变量必须为列表
out_value["C_item2"] = [2 ,"投桃报李", 456.3]   # 所有list的长度必须一致

根本原因

有待探索,欢迎大佬们指教!

http://www.lbrq.cn/news/957295.html

相关文章:

  • ghostwin8网站奖别人做/长春头条新闻今天
  • 做户外运动的网站/青岛seo招聘
  • 网站建设需要什么基础/软文广告经典案例200字
  • 美工免费素材网站/seo是什么意思为什么要做seo
  • 网站建设介绍怎么写/可以看任何网站的浏览器
  • wordpress 导出菜单/宁波网站推广优化公司电话
  • 腾讯文件怎么转换wordpress/兰州搜索引擎优化
  • 怎么查询网站是否收录/seo公司上海牛巨微
  • 如何做电商网站测试/网站百度推广
  • 长沙做网站seo/产品推广策略
  • 淘宝网站设计公司/营销存在的问题及改进
  • 旅游手机网站模板/交换链接或称互惠链接
  • 枣强网址建站/在线视频用什么网址
  • wordpress生成封面分享/seopc流量排行榜企业
  • php网站建设公司/山东关键词优化联系电话
  • 互联网医院运营方案/seo短视频发布页
  • 记事本做网站的代码/培训机构最新消息
  • 莆田做网站建设/青岛百度网站排名
  • 天津网约车驾驶员申请系统/网站查询工具seo
  • 广东品牌网站建设哪家好/襄阳seo优化排名
  • 设计师网址导航官网入口/win10必做的优化
  • 网站建设五合一/创建网站免费注册
  • 深圳公司设计网站/关键词数据分析
  • 网站建设 行业资讯/网站运营方案
  • 做推广有什么好网站/自己怎么开电商平台
  • wordpress调用菜单/网络优化排名培训
  • 电子商务网站建设优势/网络营销工具有哪些
  • iis7 网站 目录/免费收录网站推广
  • 企业注册好了怎么做网站/淘宝seo排名优化的方法
  • 张家港做网站多少钱/教师遭网课入侵直播录屏曝光广场舞
  • webstorm的内置命令行工具没办法使用了怎么办
  • 如何用Python并发下载?深入解析concurrent.futures 与期物机制
  • RV126平台NFS网络启动终极复盘报告
  • 产品需求文档(PRD)格式全解析:从 RP 到 Word 的选择与实践
  • 【Flutter】深入理解 Provider:不仅仅是Consumer
  • 使用 jar -xvf 解压JAR文件无反应怎么办?