簡體   English   中英

如何從csv讀取沒有標題的列並使用Python將輸出保存在txt文件中?

[英]How to read a column without header from csv and save the output in a txt file using Python?

我有一個包含許多列的文件“TAB.csv”。 我想從 CSV 文件中選擇一列沒有標題(該列的索引為 3)。 然后創建一個新的文本文件“NEW.txt”並在那里寫入該列(不帶標題)。

下面的代碼讀取該列,但帶有標題。 如何省略標題並將該列保存在新的文本文件中?

import csv
with open('TAB.csv','rb') as f:
    reader = csv.reader(f)
    for row in reader:
        print row[3]

這是@tmrlvi 所說的解決方案:它通過下一個函數跳過第一行(標題):

import csv

with open('TAB.csv','rb') as input_file:
    reader = csv.reader(input_file)
    output_file = open('output.csv','w')
    next(reader, None)

    for row in reader:
        row_str = row[3]
        output_file.write(row_str + '\n')

    output_file.close()

嘗試這個:

import csv

with open('TAB.csv', 'rb') as f, open('out.txt', 'wb') as g:
    reader = csv.reader(f)
    next(reader)            # skip header
    g.writelines(row[3] + '\n' for row in reader)

enumerate是一個很好的函數,它返回一個元組。 它可以在運行迭代器時查看索引。

import csv
with open('NEW.txt','wb') as outfile:
    with open('TAB.csv','rb') as f:
        reader = csv.reader(f)
        for index, row in enumerate(reader):
           if index > 0:
               outfile.write(row[3])
               outfile.write("\n")

另一種解決方案是從文件中讀取一行(以跳過標題)。

這是一個老問題,但我想補充一下關於 Pandas 庫的答案,我想說。 最好將 Pandas 庫用於此類任務,而不是編寫自己的代碼。 Pandas 的簡單代碼如下:

import pandas as pd
reader = pd.read_csv('TAB.csv', header = None)

暫無
暫無

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

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