flyps 发表于 2023-1-1 20:29:52

如何在csv文件中把字符写在最前面,谢谢

本帖最后由 flyps 于 2023-1-1 20:55 编辑

f = open('aa.csv','a',newline='')
csv_writer = writer(f, delimiter=',')
csv_writer.writerow(['a','b','c'])
f.close()

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


而我需要的把字符abc写在第一行,如图

请问应该如何改写,谢谢

阿奇_o 发表于 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追加到第一行上,而不是最后一行


with open('aa.csv', 'r', encoding='utf8') as f:
    data = f.readlines()
    # print(data)
# 保险起见,覆盖重写到另一个csv文件(如 bb.csv)
with open('bb.csv', 'w', encoding='utf8') as f:
    f.write(','.join(list('abc')))
    f.write('\n')
    f.writelines(data)

ZhKQYu 发表于 2023-1-1 20:48:44

excel里左对齐一下就好了
csv本质就是一连串文本,按照符号分割的
应该没法设置格式

ba21 发表于 2023-1-1 20:51:32

还没明白你想问什么。

flyps 发表于 2023-1-1 20:56:05

ba21 发表于 2023-1-1 20:51
还没明白你想问什么。

麻烦重新看一下

ba21 发表于 2023-1-1 21:17:23

open('aa.csv','a'追加都是在后面加

open('aa.csv','w'写入方式,按顺序重写一遍就可以了(如果原先有内容,先读取,然后统一写入)
注:这本身就是操作文本文件一样的操作,没有更好的办法。
f = open('aa.csv','w',newline='')
csv_writer = csv.writer(f, delimiter=',')
csv_writer.writerow(['a','b','c'])
csv_writer.writerow()
csv_writer.writerow()

flyps 发表于 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追加到第一行上,而不是最后一行

suchocolate 发表于 2023-1-2 10:16:49

那得先把csv读取成数据,然后操作数据插入到第1行(如用pandas或openpyxl),最后统一写回到文件里。open并没有直接的插入功能。

ba21 发表于 2023-1-2 19:23:53

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

如果原先有内容,先读取,然后统一写入

flyps 发表于 2023-1-2 20:32:25

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

使用pandas来操作是可以的,但不想这样操作

suchocolate 发表于 2023-1-3 09:17:01

flyps 发表于 2023-1-2 20:32
使用pandas来操作是可以的,但不想这样操作

那就自己写一个函数,先把数据读取成列表,然后列表里插入,之后再统一写进csv文件。
页: [1]
查看完整版本: 如何在csv文件中把字符写在最前面,谢谢