Python 如何操作.txt文件以便只能打印某些行

Python 如何操作.txt文件以便只能打印某些行,python,Python,我想做的是只打印第5列的.txt文件减去第3列的行。我已经尝试过好几次了,但是我对python还不熟悉,因此非常感谢您的帮助 def Option_B(): print ("Estimate_Number","Customer_ID","Final_Total","Amount_Paid","Amount_Outstanding") f = open("paintingJobs.txt", "r") searchlines = f.readlines() f.cl

我想做的是只打印第5列的.txt文件减去第3列的行。我已经尝试过好几次了,但是我对python还不熟悉,因此非常感谢您的帮助

def Option_B():
    print ("Estimate_Number","Customer_ID","Final_Total","Amount_Paid","Amount_Outstanding")
    f = open("paintingJobs.txt", "r")
    searchlines = f.readlines()
    f.close()
    for A, line in enumerate(searchlines):
        if "A" in line and line[5]<line[3]:
            print (line)

现在,您正在比较行中的第3个和第5个字符,而不是第3列和第5列。必须按逗号分隔符拆分,并且在比较之前还应将这些列转换为整数:

with open("data.txt") as f:
    for line in f:
        columns = line.split(',')
        if "A" in columns and int(columns[5]) < int(columns[3]):
            print(line)

不是Python解决方案,但您可以使用(
$0
是整行,
$6
是从1开始编号的第6列):


你忘了(或者可能不知道你应该)将
拆分(',')
我不知道如何拆分,这对我有什么帮助?类似于
line.split(',')[5]那么我要确保每个都拆分,然后我的代码才能工作吗?感谢我一直以来都坚持使用这个方法
with open("data.txt") as f:
    for line in f:
        columns = line.split(',')
        if "A" in columns and int(columns[5]) < int(columns[3]):
            print(line)
import csv
with open("data.txt") as f:
    reader = csv.reader(f, delimiter=',')
    for columns in reader: 
        if "A" in columns and int(columns[5]) < int(columns[3]):
            print(columns)
$ gawk -F , '$6 < $4 {print $0}' < so.txt
E5341,21/09/2015,C102,440,E,0
E5343,21/09/2015,C104,730,N,0
E5345,22/09/2015,C106,815,A,400
E5346,23/09/2015,C107,970,N,0
E5347,23/09/2015,C108,1050,E,0
E5348,23/09/2015,C109,370,A,200
E5349,25/09/2015,C110,480,A,250
E5351,25/09/2015,C112,1750,E,0
E5352,28/09/2015,C113,1500,N,0
E5353,28/09/2015,C114,272,A,200
E5354,29/09/2015,C115,560,E,0
E5355,29/09/2015,C116,530,A,450
E5356,29/09/2015,C117,860,E,0
E5357,29/09/2015,C118,650,E,0
E5359,29/09/2015,C120,980,N,0
E5360,30/09/2015,C121,1375,E,0
E5362,01/10/2015,C123,867,E,0
E5363,01/10/2015,C124,930,A,500
E5364,02/10/2015,C125,915,A,800
E5366,03/10/2015,C127,576,E,0
E5367,03/10/2015,C128,427,A,350
E5369,07/10/2015,C130,1756,N,0
E5370,07/10/2015,C131,432,E,0
E5372,10/10/2015,C133,923,E,0
E5373,10/10/2015,C134,1023,A,550
E5374,10/10/2015,C135,2070,E,0
E5375,10/10/2015,C136,687,N,0
E5377,13/10/2015,C138,829,E,0
E5378,13/10/2015,C139,1503,E,0
E5379,14/10/2015,C140,850,E,0