簡體   English   中英

如何逐行讀取文件,然后在Python中包含包含值范圍的字符串的情況下打印該行?

[英]How to read a file line by line, then print the line if it contains a string with a range of value in Python?

我是Python 2.7的新手,但我仍在嘗試掌握它。

我有一個文本文件,其中包含一行這樣的一行:

"AA,,BB,2014-02-06,0,0|CC,,DD,2014-02-27,0,0|EE,,FF,2014-02-04,1,1"#"GG"#"USD"#"true"#Total : USD#1638.93#

(“ USD”之前有一堆文本,每行各不相同。)

我嘗試這樣做:

with open('out_put_usjfk50.csv', 'rb') as f:
    reader = csv.reader(f, delimiter='#')
    for row in reader:
        amount = float(row[5])
        if amount <= 800:
            print row
        elif amount is None:
            pass

但是我遇到了同樣的錯誤: ValueError: could not convert string to float:

我很沮喪 我如何遍歷每行以檢查整數值(它是字符串的一部分),然后打印出小於(例如)USD1500的行? 如果有人能指出我正確的方向,我將不勝感激!

您有一個CSV文件; 使用csv模塊

import csv

with open('filename.csv', 'rb') as f:
    reader = csv.reader(f, delimiter='#')
    for row in reader:

新的每row對象是一個字符串列表; 每個字符串代表文件中的一列。

假設'1638.93' 8列,則您將使用(對於使用基於0的索引的Python):

amount = float(row[7])

現在,您從該字符串中獲得了一個浮點數,可以對其進行測試:

with open('filename.csv', 'rb') as f:
    reader = csv.reader(f, delimiter='#')
    for row in reader:
        amount = float(row[7])
        if amount <= 1500:
            print row

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM