也没啥,记下来怕忘了.说明都在代码里面:

麻蛋,这个着色好难看

import csv
import json #从txt变为csv
student_txt=[];
with open("student.txt",mode='r',encoding='utf-8')as student_txt_file_name:
for i in student_txt_file_name.readlines():
student_txt.append(i.strip('\n').split(" ")); #去掉换行符,转为list,使用空格分开(因为txt里面是以空格隔开)
with open("student.csv",mode='w',encoding='ansi',newline='')as student_csv_file_name: #newline='':作用是防止空行产生;encoding='ansi'创建一个以ASCII编码的csv文件,用utf-8的话我的Excel不认,乱的
write=csv.writer(student_csv_file_name); #创建一个编辑对象
for i in student_txt:
write.writerow(i); #把每一个列表(子列表)作为行写入
#我没有主动关闭这两个文件的原因我不说,反正我知道,我自己忘了就让我自己想去. #从csv变为txt
student_csv=[];
student_txt=[];
with open("student.csv",mode='r',encoding='ansi')as student_csv_file_name:#编码读写一致
read_object=csv.reader(student_csv_file_name);
with open("student1.txt",mode='w',encoding='ansi')as student_txt_file_name:
for i in read_object:
j=' '.join(i)+'\n'; #这种奇怪的转化方式亮瞎我的眼.还一闪一闪的像迪厅!,
student_txt_file_name.writelines(j);
#不一定非得是列表,字典也可以
#txt转json
student_json=[];
student_txt=[];
with open('student.txt',mode='r',encoding='utf-8')as student_txt_file_name:
with open("student.json",mode='w',encoding='ansi')as student_json_file_name:
for i in student_txt_file_name.readlines():
student_txt.append(i.strip('\n').split(' '));
key=student_txt[0];#作为键
for i in range(1,len(student_txt)):
student_json_temp=[];
for j in zip(key,student_txt[i]): #zip接受多个可迭代对象作为参数,然后将这些对象中的对应位置的元素组成一个个的元组:zip([1,2,3],[4,5,6])返回[(1,4),(2,5),(3,6)]
k=":".join(j); #这个的作用就是把(1,4)变成"1:4"
student_json_temp.append(k);
student_json.append(student_json_temp);
json.dump(student_json,student_json_file_name);#这种写方式让我有些郁闷,总觉得像创建对象似的
#json转txt
student_json=[];
student_txt=[];
with open('student_json转txt.txt',mode='w',encoding='ansi')as student_txt_file_name:
with open("student.json",mode='r',encoding='ansi')as student_json_file_name:
read_object=json.load(student_json_file_name);
for i in read_object:
head_list=[];
body_list=[];
for j in i:
k=j.split(':');
if len(student_json)==0:
head_list.append(k[0]);
body_list.append(k[1]);
if len(student_json)==0:
student_txt_file_name.write(' '.join(head_list)+'\n');
student_json.append(student_json); #用了一次就没用了
student_txt_file_name.write(' '.join(body_list)+'\n'); #csv转json
student_csv=[];
student_json=[];
with open("student.csv",mode='r',encoding='ansi')as student_csv_file_name:
read_object=csv.reader(student_csv_file_name); #用csv模块自带的函数来完成读写操作
with open("student_csv转json.json",mode='w',encoding='ansi')as student_json_file_name:
for i in read_object:
student_csv.append(i);
key=student_csv[0];
for i in range(1,len(student_csv)):
student_json_temp=[];
for j in zip(key,student_csv[i]):
k=":".join(j);
student_json_temp.append(k);
student_json.append(student_json_temp);
json.dump(student_json,student_json_file_name); #json转csv
student_csv=[];
student_json=[];
with open("student.json",mode='r',encoding='ansi')as student_json_file_name:
with open("student_json转csv.csv",mode='w',encoding='ansi',newline='')as student_csv_file_name:
read_object=json.load(student_json_file_name);
write=csv.writer(student_csv_file_name);
for i in read_object: #读出来是列表
ledlist=[];
templist=[];
for a in i:
j=a.split(':');
ledlist.append(j[0]);
templist.append(j[1]);
if len(student_csv)==0:
student_csv.append(ledlist);
student_csv.append(templist);
for i in student_csv:
write.writerow(i);

  

最新文章

  1. Android 实现分页(使用TabWidget/TabHost)
  2. 【实践】js实现简易的四则运算计算器
  3. WC项目
  4. git 删除untracked 文件(转载)
  5. 配置Hibernate二级缓存时,不能初始化RegionFactory的解决办法
  6. echosp 销量排行 新增实际价格
  7. 利用Mysql提供的字符串方法查找字符串中某字符出现的次数
  8. [原]Android打包之跨平台打包
  9. Mac OS finder : 显示和隐藏文件[夹] show and hide files or folders
  10. 颜色追踪块CamShift---33
  11. POJ 2406 Power Strings KMP运用题解
  12. linux 修改命令行编码 乱码解决方案
  13. 给id赋值
  14. shell脚本学习(四)
  15. 【原创】那些年用过的Redis集群架构(含面试解析)
  16. python flask安装
  17. SpringCloud报错:Caused by: org.yaml.snakeyaml.parser.ParserException: while parsing MappingNode
  18. laravel中的DB facade实现数据的CURD
  19. 循环队列 c 实现!!!!
  20. 北京Uber优步司机奖励政策(4月12日)

热门文章

  1. css的性质
  2. oracle11g的监听配置文件中的program和env两个配置,必须干掉,客户端才能正常连接
  3. [LeetCode&Python] Problem 674. Longest Continuous Increasing Subsequence
  4. Bootstrap如何禁止响应式布局 不适配
  5. mql初学事物和视图
  6. 在jsp中应如何避免,request.getContextPath();等get报错问题
  7. js中常见事件
  8. django无法同步mysql数据库 Error:1064
  9. 浅谈JavaScript函数重载
  10. ResourceBundle类的方式来读取config.properties配置文件参数值