[英]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.