我有一个文本文件,内容是包含数字的表:
510 6
620 1
730 4
840 3
923 1
413 6
如何提取第二列到一个列表中?
这是一个由空格分隔的文件,因此使用读取带分隔符值文件的模块csv。
import csv
with open('path/to/file.txt') as inf:
reader = csv.reader(inf, delimiter="")
second_col = list(zip(*reader))[1]
# In Python2, you can omit the `list(...)` cast
zip(*iterable)
模式可用于将行转换为列,反之亦然,
>>> testdata = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
>>> for line in testdata:
... print(line)
[1, 2, 3]
[4, 5, 6]
[7, 8, 9]
但是,需要列,可以将每一行传递给zip
函数
>>> testdata_columns = zip(*testdata)
# this is equivalent to zip([1,2,3], [4,5,6], [7,8,9])
>>> for line in testdata_columns:
... print(line)
[1, 4, 7]
[2, 5, 8]
[3, 6, 9]
import csv
with open('csv_file','r') as f:
# Printing Specific Part of CSV_file
# Printing last line of second column
lines = list(csv.reader(f, delimiter = ' ', skipinitialspace = True))
print(lines[-1][1])
# For printing a range of rows except 10 last rows of second column
for i in range(len(lines)-10):
print(lines[i][1])