【问题标题】:How do I convert 4 text files in to csv with 4 columns如何将 4 个文本文件转换为 4 列的 csv
【发布时间】:2017-02-02 21:31:23
【问题描述】:

-文件 1-
一个
b
c

-文件 2-
1
2
3

-文件 3-
洛杉矶
顺丰
直流

-文件 4-
红色
蓝色
银

我想实现以下目标,但不知道如何......

1 LA 红色
b 2 SF 蓝色
c 3 直流银

【问题讨论】:

  • 哪种语言?
  • python、awk 甚至 bash 中的一些简单的东西都会很棒。

标签: csv text


【解决方案1】:

我会在终端中执行此操作:

paste file1 file2 | paste - file3 | paste - file4

如果您想在中间使用逗号而不是制表符,请在任何地方使用 paste -d,。

或者在末尾加上| tr '\t' ','。

【讨论】:

  • 哇,我怎么一直不知道粘贴!这很棒。粘贴 -d 有问题...它正在删除 file1。现在解决这个问题。 :)
  • 想通了。在 -d 之后,您可以选择您选择的分隔符......多么棒的工具。粘贴 -d , file1 file2
【解决方案2】:
import numpy as np

data = [ [] for _ in range(4) ]
filenames = ["file_1.txt", "file_2.txt", "file_3.txt", "file_4.txt"]
for i in range(4):
    with open(filenames[i], 'r') as F:
        data[i] = F.readlines()
data = np.asarray(data)
with open("output.csv", 'w') as F:
    for i in range(4):
        F.write(','.join( s for s in data[:][i] ))

应该可以的

【讨论】:

  • 如果你不介意我问。你能解释一下这是如何工作的吗?
  • 首先,创建一个包含四个数组的 numpy 数组。然后你定义你的文件名列表。之后,您连续读取每个文件并将数据放入其中一个数组中。之后,您可以通过逗号连接每列数据并将其写入 .csv 文件来输出组合文件的每一行。请注意,逗号很重要,因为它们分隔 CSV 文件中的列
  • 非常感谢您的解释。我安装了 numpy。但是我遇到了这个问题:ValueError:无法将大小为 8889 的序列复制到维度为 0 的数组轴。您可能知道是什么导致了问题或如何将维度添加到轴?
  • 好的,这是因为 numpy 喜欢使用具有标准大小的数组。我将编辑我的问题,使其能够正常工作
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-11-26
  • 1970-01-01
  • 1970-01-01
  • 2020-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多