【发布时间】:2021-01-16 03:55:40
【问题描述】:
对不起,如果以前有人问过这个问题,我找不到任何东西。
我正在尝试定义一个函数,该函数采用任意数量的 .txt 文件,如下所示
读取它们,连接所有行并将其保存到一个 numpy 数组中。这适用于一个 .txt 文件。一旦我使用两个文件,我就会得到array([nan, nan]) 作为回报,三个文件array([nan, nan, nan]) 等等。
import numpy as np
def readInSpectra(*files):
raw = np.genfromtxt(files[0], skip_header=0, delimiter='\t')
for i in range(1, len(files)):
raw_i = np.genfromtxt(files[i], skip_header=0, delimiter='\t')
raw = np.vstack((raw, raw_i))
return raw
files = ('./file1.txt', './file2.txt', './file3.txt')
test = readInSpectra(files)
【问题讨论】:
-
你为什么要解压你的输入元组? Python 会将元组的每个元素视为不同的参数。
-
只需使用
def readInSpectra(files)而不是def readInSpectra(*files)。 -
没错,这行得通。我用谷歌搜索“参数数量未知的python函数”,发现我应该使用一个元组,比如作为参数并写
function(*argument)。我确信它仍然是强大的“不是要走的路”,但它现在可以满足我的需求。 -
@Wulfram 你仍然可以使用你原来的版本,只是用另一种方式调用它(见我的编辑)
-
@Wulfram 您没有未知数量的参数,您有 1 个包含多个元素的参数,在本例中为 1 个字符串元组。
标签: python arrays numpy genfromtxt txt