簡體   English   中英

如何讀取 CSV 文件兩次並根據通過函數傳遞的參數打印某些行?

[英]How do I read through a CSV file twice and print certain rows based on arguments passed through the function?

我在讀取 CSV 文件並根據該行中是否存在字符串值打印出一行時遇到問題。 這是我當前的代碼:

main("Fuel")
main("Temp")

^這是將字符串作為參數並將其傳遞給另一個函數的主要函數。

def main(String):
with open(fileName, 'r') as f:
    reader = csv.reader(f)
    for row in reader:
        for field in row:
            if field == String: 
                print(row)

^此函數將從“Fuel”和“Temp”上面獲取參數並在 CSV 文件中查找它。 如果找到它,它將打印出該行。

一個標題 另一個標題
燃料 X116.75 Y151 Z175
燃料 X138.50 Y151 Z175
燃料 X160.25 Y151 Z175
溫度 X138.50 Y93 Z225
溫度 X160.25 Y122 Z225
溫度 X116.75 Y93 Z225

^ 這是我正在閱讀的 CSV 文件

當我執行我的代碼時,我能夠打印出所有的“燃料”行,但沒有打印出所有的“臨時”行。 這是我的輸出:

['Fuel', 'X116.75', 'Y151', 'Z175']
['Fuel', 'X138.5', 'Y151', 'Z175']
['Fuel', 'X160.25', 'Y151', 'Z175']

即使我在main("Fuel")前面有main("Temp") main("Fuel") ,也不會打印任何內容。 該程序似乎只會遍歷第一行。 如何更改我的程序,以便它每次都可以通讀整個文件並打印其中包含字符串值的所有行?

您的 main 函數應該遍歷reader而不是data

def main(s):
    with open(fileName, 'r') as f:
        reader = csv.reader(f)
        for row in reader:
            for field in row:
                if field == s:
                    print(row)

暫無
暫無

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

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