我的輸入文件有兩列。我試圖在第二個for循環內打印第二列inputdata1.txt
。但我的代碼不起作用。有人可以告訴我該怎麼辦?Python - 從文件中讀取第二列
7
A
回答
7
你可以做這樣的事情。 Separator
是您的文件用於分隔柱的字符,例如標籤或逗號。
for line in open("inputfile.txt"):
columns = line.split(separator)
if len(columns) >= 2:
print columns[1]
11
with open('inputdata1.txt') as inf:
for line in inf:
parts = line.split() # split line into parts
if len(parts) > 1: # if at least 2 parts/columns
print parts[1] # print column 2
這假定列由空格分開。
功能split()可以指定不同的分隔符。例如,如果列以逗號分隔,
,則在上面的代碼中使用line.split(',')
。
注:使用with
打開文件自動關閉它當您完成,或者如果你遇到例外。
+0
'行。如果strip()的後面跟着'line.split()',它就是多餘的 –
5
快速「N髒
如果安裝AWK:
# $2 for the second column
os.system("awk '{print $2}' inputdata1.txt")
使用類
使類:
class getCol:
matrix = []
def __init__(self, file, delim=" "):
with open(file, 'rU') as f:
getCol.matrix = [filter(None, l.split(delim)) for l in f]
def __getitem__ (self, key):
column = []
for row in getCol.matrix:
try:
column.append(row[key])
except IndexError:
# pass
column.append("")
return column
如果inputdata1.txt
會是什麼樣子:
hel lo wor ld wor ld hel lo
你會得到這樣的:
print getCol('inputdata1.txt')[1]
#['lo', 'ld']
其他注意事項
- 可以使用
pyawk
更多awk的功能 - 如果你使用快速「N髒方法使用
subprocess.Popen
- 您可以更改分隔符
getCol('inputdata1.txt', delim=", ")
- 使用
filter
刪除空值或取消註釋pass
0
f = open("file_to_read.txt") # open your file
line = f.readline().strip() # get the first line in line
while line: # while a line exists in the file f
columns = line.split('separator') # get all the columns
while columns: # while a column exists in the line
print columns # print the column
line = f.readline().strip() # get the next line if it exists
有了這個代碼,您可以訪問每行的所有列。
相關問題
- 1. Simulink:從第一位或第二位讀取二進制文件
- 2. 從python的第二行開始讀取文件
- 3. Python從第二行讀到第15行的文本文件
- 4. python - 從文件中讀取幾列
- 5. 從python中的文件讀取列表
- 6. C++。從文本文件中讀取。每個第二段丟失
- 7. C#從讀取文本文件中讀取二進制文件
- 8. 從Python中讀取文件
- 9. Python從文件中讀取
- 10. 在Python中讀取二進制文件
- 11. 在Python中讀取二進制文件
- 12. 從一個文件讀取二維數組到Python列表
- 13. Python 2.7 - 從文件中讀取和讀取一個列表
- 14. 使用php從txt文件中讀取每第二行
- 15. 從使用getline的文件中讀取第二個整數()
- 16. 如何從文本文件中只讀取第26列?
- 17. 從文件第二列中刪除0.0
- 18. 從Python中的二進制文件中讀取整數
- 19. 嘗試讀取文件夾中的第二個文件時Python返回錯誤
- 20. 從文本文件的第二行讀取
- 21. 從文件中讀取二進制數
- 22. 從文件中讀取二叉樹
- 23. Python讀取Fortran二進制文件
- 24. 用python讀取二進制文件
- 25. 用Python讀取二進制Plist文件
- 26. 使用python從二進制文件中讀取數字數據
- 27. Python - 從二進制文件中讀取字符串
- 28. 從文本文件中讀取列表
- 29. 從文件中讀取第5行,然後從文件中讀取其餘
- 30. 從csv文件讀取Python
你能展示一些代碼嗎? – jsalonen
您應該顯示「_is not working_」的代碼並解釋「_is not working_」的含義。 – Tadeck
此外,您可能想要解釋如何在inputdata1.txt中分隔列。 – dckrooney