Chinaunix

标题: python读写csv文件的问题 [打印本页]

作者: maple412    时间: 2015-06-23 21:23
标题: python读写csv文件的问题
如何实现读写csv文件的某一行数据,另外如何统计csv文件中有多少行和多少列
作者: bikong0411    时间: 2015-06-24 10:41
fileio搞起啊,结合"str" in line 就好了
作者: reb00t    时间: 2015-06-24 11:03
@reyleon  是这位大神的菜~
作者: reyleon    时间: 2015-06-24 11:07
reb00t 发表于 2015-06-24 11:03
@reyleon  是这位大神的菜~



作者: maple412    时间: 2015-06-24 12:33
回复 2# bikong0411

具体解释下呢,这个怎么用

另外不太理解delimiter=’:’, quoting=csv.QUOTE_NONE 这2个参数是干嘛的
   
作者: substr函数    时间: 2015-06-24 15:03
先别急
看看书
学习 学习 这个
open
close
sum
enumerate
for
+
+=
list comprehension
print

书可以很好的解决你的疑问

http://bbs.chinaunix.net/thread-1825165-1-1.html

这就是它的一个很好的价值所在
看看书对你学习Python有很大帮助

搞本学习手册看看吧
作者: icymirror    时间: 2015-06-25 09:07
回复 1# maple412
得到csv文件的行列数:
  1. def detect_csv_header(filename):
  2.     handler = open(filename, "r")
  3.     content = handler.readlines()
  4.     handler.close()

  5.     return csv.Sniffer().has_header("".join(content))

  6. def get_csv_row_col(filename):
  7.     row = 0
  8.     has_header = detect_csv_header(filename)
  9.     datareader = csv.reader(open(filename), dialect='excel')
  10.     for line in datareader:
  11.         if datareader.line_num == 1:
  12.             col = len(line)
  13.             if not has_header:
  14.                 row = row + 1
  15.         else:
  16.             row = row + 1
  17.     return row, col
复制代码
只要修改下get_csv_row_col,就可以读取指定行了。
作者: maple412    时间: 2015-06-26 11:18
回复 7# icymirror

如果想要在某一行或者某一列写数据,该如何操作呢

   
作者: icymirror    时间: 2015-06-26 16:41
回复 8# maple412
那就要一边读原来的文件,一边写到新文件了。
当读到需要修改的地方,把你的内容直接放到新文件里面,然后,继续读原来的文件剩下的部分,写到新文件里面去。
作者: yestreenstars    时间: 2015-06-26 18:10
本帖最后由 yestreenstars 于 2015-06-26 18:10 编辑

假设分隔符为制表符,可以参考以下代码:
  1. with open('1.txt') as f:
  2.     lines = f.readlines()
  3.     field = lines[0].split('\t')
  4.     print 'row: %d\ncolumn: %d' % (len(field), len(lines))
复制代码





欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2