簡體   English   中英

逐行讀取CSV文件python

[英]Read CSV file line-by-line python

我有一個要讀取的 .csv 文件,但遇到了問題。 請原諒我,這是一個非常補救的問題:

我正在嘗試使用以下內容逐行讀取文件:

with open('Book8.csv') as fp:
for line in fp:
    print line

如果我這樣做,我會打印整個文件。 像這樣:

1,2,3

4,5,6

7,8,9

但是我只想打印中間線所以我把

 with open('Book8.csv') as fp:
for line in fp:
    print line[1]

這給了我

, , 作為我的輸出。

我希望輸出為 4,5,6。 似乎每行中的逗號或 [1] 字符都被視為該行的一部分。 我不知道如何解決這個問題。

最終,我要在每一行上做一個正則表達式來搜索每一行中的多個子字符串。

例如:

第 1 行:這里有我想要的文字,文字是 _:E28、_:K31 等等

第 2 行:這里有我想要的文字,文字是 _:H27、_:K12 等等

是否可以編寫一個正則表達式來為僅包含我感興趣的文本的每一行創建一個列表?

例如:列表 1=[" :E28", " :K31"] 列表 2=["_:H27", "_K12"]

將您的行存儲在列表中並從那里打印。 readlines()為您返回文件中每一行的列表。

with open('Book8.csv') as fp:
    line = fp.readlines()

print(line[1])

您正在迭代位置 1 處的字符串,它只是,

import csv
with open ('Book8.csv','r') as csv_file:
    reader =csv.reader(csv_file)
    next(reader) # skip first row
    for row in reader:
        print(row)

如前所述,您只希望打印中間行,因此您可以使用簡單的行計數器來實際計算行數並僅打印中間行

row_count = 0
with open('Book8.csv') as fp:
for line in fp:
    if row_count == 1:
        print line
    row_count+=1

如果存在多行並且您希望打印除第一行和最后一行之外的所有中間行的情況,您可以進一步修改代碼

row_count = 0
with open('Book8.csv') as fp:
for line in fp:
    if row_count!=0 and row_count!=total_number_of_lines-1:
        print line
    row_count+=1

暫無
暫無

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

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