2015-07-01 48 views
1

我是一個Python新手,所以這可能聽起來像一個愚蠢的問題,但我有一個CSV文件,我希望我的腳本打印文件中的行數和列數。這是我的腳本:如何打印csv文件中的列數和行數?

import csv 

op = open(Test06242015.csv) 
rd = csv.reader(op) 


for row in rd: 
    list = [] 
    list.append(row) 
    print list 
    for items in row: 
     print len(row) 

op.close() 

我實際上得到正確的答案(320),但它打印出320次,每次行(如下圖):

[['19.385', '19.227', '18.308', ...]] 
320 
320 
320 
320 
320 
320 
320 
320 
(...and it keeps going) 

我怎樣才能讓這個320只打印一次?另外,我怎樣才能讀取行數?

非常感謝!

回答

2

您正在打印內部循環內部的行的長度,請嘗試將其打印到內部循環之外。

示例 -

for row in rd: 
    list = [] 
    list.append(row) 
    print list 
    for items in row: 
     pass # or whatever other logic you want, if you do not want to do anything remove this loop 
    print len(row) 
+0

謝謝!現在看起來很明顯:) –

0
import csv 

with open('Test06242015.csv', 'rb') as f: 
    reader = csv.reader(f) 
    line = next(reader, []) 
    remaining = len(reader) 
    print len(line) # Number of columns 
    if line: 
     remaining += 1 
    print remaining # Total numer of rows. 
0

你應該只打印行和它的長度,而不是在每一行和每一列的每列長度的完整列表。

counter = 1 
for row in rd: 
    print counter, len(row), row 
    counter += 1 
+0

謝謝!現在明白了! –

0

您也可以使用熊貓這是令人難以置信的快速獲取你需要的信息:

import pandas as pd 

df = pd.read_csv('filename.csv') 
print(df.shape) 

#Output

#(行數,列數)

相關問題