Python 只打印所需的列
我只想在打印时显示所需的列。原始数据如下所示 ['*10 6cb2.aeee.0db7动态300华氏度Po11'] 我想打印“10”、“6cb2.aeee.0db7”和“Po11”Python 只打印所需的列,python,python-3.x,csv,Python,Python 3.x,Csv,我只想在打印时显示所需的列。原始数据如下所示 ['*10 6cb2.aeee.0db7动态300华氏度Po11'] 我想打印“10”、“6cb2.aeee.0db7”和“Po11” with open('c:/sw_mac_addr/test.txt', newline='') as f: reader = csv.reader(f, delimiter='\t', quoting=csv.QUOTE_NONE) for row in reader: print(
with open('c:/sw_mac_addr/test.txt', newline='') as f:
reader = csv.reader(f, delimiter='\t', quoting=csv.QUOTE_NONE)
for row in reader:
print(row)
您可以通过列表使用和提供列索引。这也适用于负指数:
from io import StringIO
import csv
from operator import itemgetter
x = StringIO("""*\t10\t6cb2.aeee.0db7\tdynamic\t300\tF\tF\tPo11""")
cols = [1, 2, -1]
# replace x with open('file.txt', 'r', newline='')
with x as fin:
reader = csv.reader(fin, delimiter='\t', quoting=csv.QUOTE_NONE)
for row in reader:
print(itemgetter(*cols)(row))
('10', '6cb2.aeee.0db7', 'Po11')
不确定StringIO应该是什么变量。请参阅我的注释:
#用open('file.txt',r',newline='')替换x
StringIO
是一个方便的函数,因此可以在不保存/加载外部文件的情况下演示代码。请参见此,但我知道它是错误的。open('c:/sw\u mac\u addr/test2.txt','r',newline='')=StringIO(“*\tVLAN\tMAC Address\tType\tage\tSecure\tNTFY\tPorts/SWID.SSID.LID”“”)cols=[1,2,7]带open('c:/sw\u mac\u addr/test2.txt',newline='')作为f:reader=csv.reader(f,delimiter='\t',quoting=csv.QUOTE\n)用于reader:print中的行:print(itemgetter(*cols)(row))我不知道itemgetter,nice,thks。打印({}{}{}.format(数据[0]。拆分()[1],数据[0]。拆分()[2],数据[0]。拆分()[-1])有什么问题。?
lines=open("Practice.txt",'r')
for line in lines.readlines():
tokens=line.split(" ")
print(tokens[1],tokens[2],tokens[-1])