“使用python的csv库向csv文件写入数据时会自动进行换行, 通过设置参数, 禁止其自动换行
。
”
python csv库向csv文件写入数据时会发生自动换行:
data = ["1,2","2,3","3,4","4,5","5,6","6,7","7,8","8,9",]# 1. 创建文件对象f = open('AZ 去重.csv', 'w', encoding='gbk')# 2. 基于文件对象构建 csv写入对象csv_writer = csv.writer(f)# 3. 构建列表头csv_writer.writerow(["A端", "Z端"])# 4. 写入csv文件内容for i in data: a, z = i.split(',') csv_writer.writerow([a, z])# 5. 关闭文件f.close()
使用默认设置时的输出文件是这样的:
在open新建文件的时候, 设置newline=""即可取消自动换行:
data = ["1,2","2,3","3,4","4,5","5,6","6,7","7,8","8,9",]# 1. 创建文件对象f = open('AZ 去重.csv', 'w', encoding='gbk', newline="")# 2. 基于文件对象构建 csv写入对象csv_writer = csv.writer(f)# 3. 构建列表头csv_writer.writerow(["A端", "Z端"])# 4. 写入csv文件内容for i in data: a, z = i.split(',') csv_writer.writerow([a, z])# 5. 关闭文件f.close()
更改后输出文件是这样的:
期待更多技术干货, 请关注AbaqusCoder!
如果本文对您有帮助, 期待您的转发与点亮再看!
“使用python的csv库向csv文件写入数据时会自动进行换行,通过设置参数,禁止其自动换行。”pythoncsv库向csv文件写入数据时会发生自动换行:data = ["1,2","2,3","3,4","4,5","5,6","6,7","7,8","8,9",]# 1. 创建文件对象f = open('AZ 去重.csv', 'w', encoding='gbk')...
os.chdir('E:\Project\实测\批量测试')
diclist = []
with open('HaveClear.txt',encoding='utf-8') as hf:
for line in hf.readlines():
ptyhon向
csv
文件
写入
数据时,
自动换行
:
#将数据保存在
列表
中,miles_driven,gallons_used,mpg三个数据时手动输入赋值的
trip_list.append([miles_driven,gallons_used,mpg])
#以写的模式打开文件
with open("trips.
csv
",'w') as
csv
file:
pandas这个库很好用、很大、很厉害,但是有
问题
:大。
基本上,用的上pandas,程序大小动辄300M。然后这个程序基本上也就告别秒开了。
今天做一个小功能,需要从数据库导出到
CSV
文件,想了想,不用pandas了。
第一个
问题
:数量不算小,一次读入内存太大。一行一行粒度又太小(大概100W行)
然后,整理了一下基本的业务逻辑:
先生成一个空
CSV
文件,然后生成标题。
然后,查出大概20000行,就
写入
到文件中。
最后,当无法从数据库中读取任何行数的时候,直接保存。
然后网查,发现所有的行后面都多一个空
数据
写入
csv
,当某个字符串过长时,发现生成的
csv
被强制换行了,print的数据没有
问题
使用to_excel之后就解决了,并不会强制换行,但是生成的速度相对而言就会变。
excel会丢弃后面的内容
csv
_reader =
csv
.reader(open('data.file', encoding='utf-8'))
for row in
csv
_reader:
print(row)
例如有如...
my_list = [['John', 'Doe', 25], ['Jane', 'Smith', 30], ['Bob', 'Johnson', 45]]
with open('my_file.
csv
', 'w', newline='') as file:
writer =
csv
.writer(file)
writer.writerows(my_list)
这将创建一个名为“my_file.
csv
”的文件,并将
列表
“my_list”
写入
其中。每个子
列表
将成为
csv
文件中的一行。注意,我们使用“newline=''”参数来避免在Windows系统上出现额外的空行。