鱼C论坛

 找回密码
 立即注册
查看: 2822|回复: 10

[已解决]如何在csv文件中把字符写在最前面,谢谢

[复制链接]
发表于 2023-1-1 20:29:52 | 显示全部楼层 |阅读模式
50鱼币
本帖最后由 flyps 于 2023-1-1 20:55 编辑
  1. f = open('aa.csv','a',newline='')
  2. csv_writer = writer(f, delimiter=',')
  3. csv_writer.writerow(['a','b','c'])
  4. f.close()
复制代码


运行上面的代码,字符a,b,c是生成在文本最后一行的,如图,
07.png

而我需要的把字符abc写在第一行,如图
08.png
请问应该如何改写,谢谢
最佳答案
2023-1-1 20:29:53
本帖最后由 阿奇_o 于 2023-1-2 22:22 编辑
flyps 发表于 2023-1-2 09:19
1,2,3
4,5,6
本身是存在的,abc是要追加上去的,我需要abc追加到第一行上,而不是最后一行


  1. with open('aa.csv', 'r', encoding='utf8') as f:
  2.     data = f.readlines()
  3.     # print(data)
  4. # 保险起见,覆盖重写到另一个csv文件(如 bb.csv)
  5. with open('bb.csv', 'w', encoding='utf8') as f:
  6.     f.write(','.join(list('abc')))
  7.     f.write('\n')
  8.     f.writelines(data)
复制代码


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-1-1 20:29:53 | 显示全部楼层    本楼为最佳答案   
本帖最后由 阿奇_o 于 2023-1-2 22:22 编辑
flyps 发表于 2023-1-2 09:19
1,2,3
4,5,6
本身是存在的,abc是要追加上去的,我需要abc追加到第一行上,而不是最后一行


  1. with open('aa.csv', 'r', encoding='utf8') as f:
  2.     data = f.readlines()
  3.     # print(data)
  4. # 保险起见,覆盖重写到另一个csv文件(如 bb.csv)
  5. with open('bb.csv', 'w', encoding='utf8') as f:
  6.     f.write(','.join(list('abc')))
  7.     f.write('\n')
  8.     f.writelines(data)
复制代码


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-1-1 20:48:44 | 显示全部楼层
excel里左对齐一下就好了
csv本质就是一连串文本,按照符号分割的
应该没法设置格式
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-1-1 20:51:32 | 显示全部楼层
还没明白你想问什么。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-1-1 20:56:05 | 显示全部楼层
ba21 发表于 2023-1-1 20:51
还没明白你想问什么。

麻烦重新看一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-1-1 21:17:23 | 显示全部楼层
open('aa.csv','a'  追加都是在后面加

open('aa.csv','w'  写入方式,按顺序重写一遍就可以了(如果原先有内容,先读取,然后统一写入)
注:这本身就是操作文本文件一样的操作,没有更好的办法。
  1. f = open('aa.csv','w',newline='')
  2. csv_writer = csv.writer(f, delimiter=',')
  3. csv_writer.writerow(['a','b','c'])
  4. csv_writer.writerow([1,2,3])
  5. csv_writer.writerow([4,5,6])
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-1-2 09:19:37 | 显示全部楼层
ba21 发表于 2023-1-1 21:17
open('aa.csv','a'  追加都是在后面加

open('aa.csv','w'  写入方式,按顺序重写一遍就可以了(如果原先 ...

1,2,3
4,5,6
本身是存在的,abc是要追加上去的,我需要abc追加到第一行上,而不是最后一行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-1-2 10:16:49 | 显示全部楼层
那得先把csv读取成数据,然后操作数据插入到第1行(如用pandas或openpyxl),最后统一写回到文件里。open并没有直接的插入功能。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-1-2 19:23:53 | 显示全部楼层
flyps 发表于 2023-1-2 09:19
1,2,3
4,5,6
本身是存在的,abc是要追加上去的,我需要abc追加到第一行上,而不是最后一行

如果原先有内容,先读取,然后统一写入
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-1-2 20:32:25 | 显示全部楼层
suchocolate 发表于 2023-1-2 10:16
那得先把csv读取成数据,然后操作数据插入到第1行(如用pandas或openpyxl),最后统一写回到文件里。open并 ...

使用pandas来操作是可以的,但不想这样操作
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-1-3 09:17:01 | 显示全部楼层
flyps 发表于 2023-1-2 20:32
使用pandas来操作是可以的,但不想这样操作

那就自己写一个函数,先把数据读取成列表,然后列表里插入,之后再统一写进csv文件。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-9 09:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表