使用csv.DictReader
時是否沒有與readline()
等價的內容?在循環之前,我需要跳過文件的標題行,並且使用readline()
是使用普通讀取器變量這樣做的好方法。python的csv.DictReader的readline()的等效
0
A
回答
2
的DictReader
對象是一個迭代器,所以調用它的next
方法(通過調用它next
)應該跳過(或恢復)一行,就像readline
會。
我需要循環
DictReader
對象不指定標題行之前要跳過的文件的標題行。所有後續行(第一後)是否插值的字典,與第一排的按鍵,就像這樣:
r,t,s
1,2,3
2,4,6
>>> f = open('sample.csv')
>>> r = csv.DictReader(f)
>>> next(r)
{'s': '3', 't': '2', 'r': '1'}
>>> next(r)
{'s': '6', 't': '4', 'r': '2'}
所以要跳過第一行,你必須調用next
上的文件對象本身,然後再通過該文件對象來創建DictReader
1
DictReader()
是iterator object。使用next()
function對象上得到各行:
reader = csv.DictReader(fileobj)
row = next(reader, None)
的第二個參數是next()
默認值返回,如果可迭代爲空;如果沒有更多行要讀取,則row
設置爲None
。
順便說一句,這也適用於文件對象。並且因爲DictReader()
自動將讀取第一行(如果您未指定任何字段名稱),如果要防止使用第一行,則必須在從DictReader()
對象讀取數據之前將fileobj
移動到下一行:
next(fileobj, None) # skip first line of the file
reader = csv.DictReader(fileobj)
相關問題
- 1. 用於Java的GNU Readline等效項
- 2. Python的Ruby等效「_」
- 3. Python的等效CHARTR
- 4. Python的等效Ruby的each_with_index?
- 5. Python的等效PHP的memory_get_usage()?
- 6. PHP等效Python的shlex.split的
- 7. Python的等效PHP BASE64_ENCODE的
- 8. Python在csv.DictReader()中返回KeyError()
- 9. 等效於Python中的createDataPartition
- 10. 等效於Python的Object.create()
- 11. Python的os.execvp等效於PHP
- 12. Python等效於Ruby的#each_cons?
- 13. PHP等效於Python的repr()
- 14. Golang等效於Python的NotImplementedException
- 15. Python .readline()
- 16. Python的等效的Perl /紅寶石||的=
- 17. 在Python中等效的Mathematica中的NMaximize
- 18. Python的OpenCV的CV2等效CV_FILLED
- 19. Python的等效Matlab的矢量切片
- 20. - [R等效的Python「通」語句的
- 21. python的%(從R)的等效函數
- 22. Python的等效ActionScript 3的restParam
- 23. Python .readline()重置
- 24. Python readline空行
- 25. JRE等效於Python
- 26. cout.precision()等效於python
- 27. roxygen2等效於python
- 28. 的Python的readline自動完成
- 29. 使readline等待輸入R
- 30. Python 3.2在csv.DictReader中跳過一行
有現有技術的此;-)喜歡的答案提示,人們還可以看[3.2的Python跳過csv.DictReader線(http://stackoverflow.com/questions/4787723/python -3-2-skip-a-line-in-csv-dictreader)來命名我遇到的第一個... – Dilettant