簡體   English   中英

如何讀取兩個 csv 文件並將它們連接起來?

[英]How to read two csv files and to concatenate them?

首先,我需要導入兩個 csv 文件。

然后我需要刪除兩個文件中的標題。

之后,我想從兩個文件中取出一列並將它們連接起來。

我試圖打開文件,但我不確定如何連接。

任何人都可以提供建議如何進行?

import csv

x = []
chamber_temperature = []

with open(r"C:\Users\mm02058\Documents\test.txt", 'r') as file:
    reader = csv.reader(file, delimiter='\t')
    with open(r"C:\Users\mm02058\Documents\test.txt", 'r') as file1:
        reader_1 = csv.reader(file1, delimiter='\t')

    for row in (reader):
        x.append(row[0])
        chamber_temperature.append(row[1])

for row in (reader_1):
    x.append(row[0])
    chamber_temperature.append(row[1])

由於您構建代碼的方式,file1 的上下文管理器將在 for 循環使用該文件之前關閉該文件。

使用單個上下文管理器打開兩個文件,例如

with open('file1', 'r') as file1, open('file2', 'r') as file2:
    # Your code in here

直接的錯誤是您試圖從with塊之外的reader1讀取,這意味着 Python 已經關閉了該文件。

但是無論如何嵌套with調用只是令人困惑和誤導。 這是一個概括,它應該允許您輕松擴展更多新文件。

import csv

x = []
chamber_temperature = []

for filename in (r"C:\Users\mm02058\Documents\test.txt",
                r"C:\Users\mm02058\Documents\test.txt"):
    with open(filename, 'r') as file:
        for idx, row in enumerate(csv.reader(file, delimiter='\t')):
            if idx == 0:
                continue  # skip header line
            x.append(row[0])
            chamber_temperature.append(row[1])
for row in (reader_1):
x.append(row[0])
chamber_temperature.append(row[1])

您收到此錯誤是因為您已將此代碼塊置於第二個循環之外,現在該文件已關閉。

您可以同時打開這兩個文件

with open('file1', 'r') as file1, open('file2', 'r') as file2:
    # Your code in here

或者您可以使用 pandas 打開和連接 csv 文件

import pandas as pd
data = pd.read_csv(r'file.csv', header=None)

然后參考這里連接數據幀

暫無
暫無

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

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