科研03——python如何对csv文件进行读写操作

科研03——python如何对csv文件进行读写操作

写文件

实现代码:

import csv

shuchu = []
    
shuchu.append(baseline.frequency)
shuchu.append(costd[-1])
shuchu.append(delayd[-1])

with open('cost_delay2.csv', 'a', newline='') as f2:
	writer = csv.writer(f2)
	writer.writerow(shuchu)

  • 这里面的'a'意思为追加,即“接着上次的写”,类似的,还有'w''r',分别意思为写和读,这里的写为覆盖的那种写
  • writer.writerow(shuchu)是一行一行写,writer.writerows(shuchu)是多行写入,比如,如果shuchu是个二维数组,那一行一行写就太费劲,所以这时候就需要writer.writerows(),我在最开始写V2V adaptive data rate的程序的时候就是用的这个来写入的
  • 注意,从字面意思都可以看出来writer.writerow()writer.writerows()这两个方法是对列表(list)等其他可迭代变量进行操作的,那如果只是写一个值呢?就需要像上面的程序一样,虽然只想要costd[-1]这一个值,但是却需要把这个值先写入一个列表,然后写入文件

读文件

以读下面的表格为例说明
在这里插入图片描述

实现代码:

import pandas as pd

ad = pd.read_csv("./cost_delay2.csv",)
print(ad)

address = pd.read_csv("./cost_delay2.csv",header = None)
print(address)

address0 = pd.read_csv("./cost_delay2.csv",header = None,usecols = [0])
print(address0)
address1 = pd.read_csv("./cost_delay2.csv",header = None,usecols = [1])
print(address1)
address2 = pd.read_csv("./cost_delay2.csv",header = None,usecols = [2])
print(address2)
print(address2.head(2))

输出:

   2      495  3.033333333
0  3  691.250     2.550000
1  4  789.375     2.308333
2  5  926.750     1.970000

   0        1         2
0  2  495.000  3.033333
1  3  691.250  2.550000
2  4  789.375  2.308333
3  5  926.750  1.970000

   0
0  2
1  3
2  4
3  5

         1
0  495.000
1  691.250
2  789.375
3  926.750

          2
0  3.033333
1  2.550000
2  2.308333
3  1.970000

 		  2
0  3.033333
1  2.550000
  • ad输出结果中可以看出,默认的输出是把表格的第一行的元素认为是表头了,然后左边自动添加了默认的行编号“0,1,2”
  • address输出结果中可以看出,header = None的功能是取消列的表头,而使用像行一样的默认的表头,从而避免数据的错放
  • address输出结果中可以看出,usecols = [i]这个参数是按照索引输出对应的列,这些列就是列表(list),是可以作图的时候作为x和y轴的
  • address2.head(2)输出结果中可以看出,address2.head(2)的意义是输出前两行

最后

  • 要注意用好哔哩哔哩这些工具来找
  • 另一个文件的全局变量也是可以用baseline.frequency来读出来的,这就意味着全局变量也可以跨文件使用,其实是导包,并不是常规意义上的直接使用
  • 对文件的操作中,普适的是:一个点是当前目录 两个点是上级目录,比如./cost_delay2.csv../cost_delay2.csv的样子

两篇可以参考的文章

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值