最近在学习pytorch,有一个猫狗分类的kaggle比赛,预测结果要保存在csv文件中提交。其中格式要求第一列是id(纯数字),第二列是预测为狗的概率。 但我预测出来的id那一列里忘记tensor.item()操作了,以至于输出的不是纯数字,懒得在代码里改了,也抓住这个机会来学一学字符串的处理与csv的读取操作。

这个是预测出来的图,很明显不符合赛方要求的格式

file_name = 'test.csv' with open ( file_name , 'r' ) as f : # 'r'是只读方式读取 rows = csv . reader ( f ) for row in rows : print ( row )

以下是输出

['id', 'label']
['tensor(291)', '0.854692101']
['tensor(212)', '0.007425705']
['tensor(4528)', '0.652951479']
['tensor(1513)', '0.58295995']
['tensor(906)', '0.991941571']
['tensor(52)', '0.939000905']
['tensor(11518)', '0.999034882']
['tensor(10489)', '0.998047113']
['tensor(1626)', '0.974285424']
[Finished in 0.1s]

这里提一下open()的读写参数参数:详见:传送门
在这里插入图片描述
值得注意的是:

      w模式打开文件,如果文件中有数据,再次写入内容,会把原来数据的覆盖掉
     a模式打开文件,如果文件中有数据,再次写入内容时,不会覆盖原来的数据,而是在其后添加数据

二、提取出字符串中的数字

使用正则表达式提取,需要re库

import csv 
import re 
pattern = re.compile(r'\d+')   # 查找数字
file_name = 'test.csv'
with open(file_name, 'r') as f: # 'r'是只读方式读取
    rows = csv.reader(f)
    for row in rows:
    	num = pattern.findall(row[0]) # 读出第一列中字符串中的数字
    	print(num)

以下是输出

['291'] ['212'] ['4528'] ['1513'] ['906'] ['52'] ['11518'] ['10489'] ['1626'] [Finished in 0.1s]

三、csv文件的写入

with open('test_write.csv', 'w') as f: # 如果指定的文件不存在,则会自动创建
	writer = csv.writer(f)			
	writer.writerow(['序号', '姓名'])

四、将提取出的数字写入到csv文件中

import csv 
import re  
pattern = re.compile(r'\d+')   # 查找数字
# 读取第一列,提取出数字
fname = 'result.csv'
num = []
with open(fname, 'r') as f :
	rows = csv.reader(f)
	for row in rows:
		if row[0] == "id" :
			continue
		#print(*pattern.findall(row[0]))	
		num.append([*pattern.findall(row[0]), row[1]])
# 写入到result_new.csv文件里
with open('result_new.csv', 'w', newline='') as f:
	writer = csv.writer(f)			
	writer.writerow(['id', 'label'])
	writer.writerows(num)
                    最近在学习pytorch,有一个猫狗分类的kaggle比赛,预测结果要保存在csv文件中提交。其中格式要求第一列是id(纯数字),第二列是预测为狗的概率。 但我预测出来的id那一列里忘记tensor.item()操作了,以至于输出的不是纯数字,懒得在代码里改了,也抓住这个机会来学一学字符串的处理与csv的读取操作。这个是预测出来的图,很明显不符合赛方要求的格式需要将id这一列变成纯数字,如下...
import csv
csv_reader = csv.reader(open(data.file, encoding=utf-8))
for row in csv_reader:
  print(row)
csv_reader把每一行数据转化成了一个list,list中每个元素是一个字符串。
2、写文件文件时,我们把csv文件读入列表中,写文件时会把列表中的元素写入到csv文件中。
list = [1, 2, 3, 4]
out = open(outfile, w)
csv_writer = csv.writer(out)
csv_write
				
csv:Comma-Separated Values,逗号分隔的值。csv文件字符串形式存储数据,易于读写。 Pythoncsv模块来处理csv文件csv模块包含在Python标准库中。 1、读csv文件 import csv # 读取csv文件 with open('CSV1.csv', 'r') as f: # 打开文件,并把文件对象保存为f,打开文件方式默认为r
Python数据分析:csv文件数据的提取案例 文件网址:https://www.kaggle.com/osmi/mental-health-in-tech-survey 目标:提取csv文件中的国家和所对应的性别统计数据 import csv # 数据集路径 path = 'survey.csv' def run_main(): # 男性取值列表 male_set = {'m...
课程简介:零基础小白快速学程序员大爱语言――Python,易学易用易就业!!!目标人群: 熟悉电脑基本操作,编程零基础或已具备Python或其它编程语言的人群。课程目标:绝对零基础Python3.x 入门,掌握Python语言常数据类型与操作、语句语法、流程控制、函数定义、模块管理,类与面向对象编程,错误与异常处理,文件读写等知识;为以后Python各方向领域编程打下坚实基础。课程特色: 讲师具有丰富的IT一线技术研发及教学经验,教学深入出,通俗易懂,图例教学杜绝枯燥PPT诵读;课程知识点覆盖面广,循环渐进;案例丰富、取材实战,即学即用!课程目录:01-计算机基础常识.mp402-Python语言概览、安装与运行.mp403-Python 变量、数据类型及存储.mp404-Python 常用数据类型概览.mp405-数值与字符串.mp406-列表list.mp407-字典表dict 与元组 tuple.mp408-文件与类型汇总.mp409-语句、表达式与if分支.mp410-循环语句.mp411-迭代.mp412-函数定义与参数.mp413-函数与Lambda表达式.mp414-函数应用与工具.mp415-包与模块管理及面向对象初步.mp416-面向对象编程OOP 01.mp417-面向对象编程OOP 02.mp418-面向对象编程OOP 03.mp419-异常处理及测试.mp420-unittest单元测试.mp421-数值、日期与时间.mp422-对象持久化.mp423-字符与编码.mp424-正则表达式.mp425-系统编程.mp426-python并行编程.mp427-函数高级应用及装饰器.mp428-Python-SublimeText-Python-配置.mp429-虚拟环境配置-csv文件读取处理.mp430-JSON-Excel 数据文件处理.mp431-Python 操作SQLite.mp4
csv数字不使用科学计数法Description: This is a standard combinatorics problem to count numbers(x) that can be formed with unique digits, where 0<=x<10^n. 这是一个标准的组合问题,用于计算可以由唯一数字形成的数字( x ),其中0 <= ...
2、详尽的基本的数据类型讲解,配套现成代码:字符串数字、列表、元组、字典、集合 3、运算符、表达式、分支语句与循环 4、函数、装饰器、偏函数、变量作用域、回调函数、返回函数、闭包、递归、动态规划 5、迭代器与生成器、常用函数总结、高阶函数 6、模块导入、自定义模块、安装第三方模块 7、文件操作、时间日期、日历、随机数、栈和队列、目录遍历 8、读写文件:txt、内存、csv、pdf、excel 9、面向对象:定义、封装、继承、多态 10、正则表达式、网络编程:TCP/IP、UDP、MQTT协议 11、自动化测试、异常处理、排列组合 12、进程、线程、协程、互斥锁、递归锁、升序锁、yield表达式、async/await异步
CSV(Comma-Separated Values)即逗号分隔值,一种以逗号分隔按行存储的文本文件,所有的值都表现为字符串类型(注意:数字字符串类型)。 如果CSV中有中文,应以utf-8编码读写,如果要支持Excel查看,应是要用utf-8 with bom格式及utf-8-sig Python3操作CSV文件使用自带的csv包 reader=csv.reader(f, delimiter=’,’):用来读取数据,reader为生成器,每次读取一行,每行数据为列表格式,可以通过delimiter参数指定分隔符 writer=csv.writer(f):用来写入数据,按行写入,writ
逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符字符串,最常见的是逗号或制表符。通常,所有记录都有完全相同的字段序列. 读取出的数据一般为字符类型,如果是数字需要人为转换为数字 以行为单位读取数据 列之间以半角逗号或制表符为分隔,一般为半角逗号 一般为每行开头不空格,第一行是属性列,数据
用 tcl/tk 写了个测试工具,需要用tcl 脚本读取csv 文件。但复杂的csv 文件中,每个单元格可能包含逗号,双引号,换行符,双引号中又有换行符等等情况,导致读取困难。网上找到的一些例子,大多是逐个读取单个字符,用了一段时间,感觉效率差了点。研究了一下,自己写了 tcl 读csv 文件的代码,如下: proc readCSV { channel { header 1 } { symbol
csvfile = open('test.csv', 'w', newline='') writer = csv.writer(csvfile, delimiter=',') keys = ("key") writer.writero 第1部分:csv文本文件读写 pandas 读csv文件read_csv(1.文本读写概要)https://mp.csdn.net/postedit/85289371 pandas 读csv文件read_csv(2.read_csv参数介绍)https://mp.csdn.net/postedit/85289928
【kaldi】报错:fstarcsort: error while loading shared libraries: libfstscript.so.10: cannot open shared o Python-AI Xenon: http://t.csdn.cn/U9h6l 去看我的 LaTeX数学符号大全 forkgap: 请问我在texworks ediotr输入\because为何报错呢?显示无法识别的命令序列, LaTeX数学符号大全 小莫同学Std: $\left[\begin{matrix}1 & 2 & 3 \\4 & 5 & 6 \\7 & 8 & 9\end{matrix}\right]^{n+1}$