【问题标题】:How can I import a .txt file to develop and algorithm to manipulate the data?如何导入 .txt 文件进行开发和算法来操作数据?
【发布时间】:2019-04-29 14:49:18
【问题描述】:

假设我有一个 .txt 文件,前几行数据如下所示:

v 0.188267 3.068606 0.003011 v -0.188267 3.068606 0.003011 v 0.168431 3.068606 0.013613 v -0.168431 3.068606 0.013613 v 0.146908 3.068606 0.020142 v -0.146908 3.068606 0.020142 v 0.124524 3.068606 0.022347

好的,我的目标是能够将文件导入 pycharm。然后我想写一个算法,把数据变成这种格式:

(0.188267, 3.068606, 0.003011), (-0.188267, 3.068606, 0.003011), (0.168431, 3.068606, 0.013613), (-0.168431, 3.068606, 0.013613), (0.146908, 3.068606, 0.020142), (-0.146908, 3.068606, 0.020142), (0.124524, 3.068606, 0.022347),

然后我希望将数据导出到另一个 .txt 文件中。实际上,原始 .txt 文件超过 40,000 行,手动执行此操作既乏味又耗时。

【问题讨论】:

  • 你试过什么?你能打开文件吗?获得数据后,您是否尝试过在导入的行上使用 .split()
  • stackoverflow.com/questions/14676265/… 虽然格式相同,但格式不同
  • 我是 python 新手,好像刚接触 2 天。我什至不知道如何在目录中包含文本文件,以便 pycharm 可以读取该文件。就像,我不想使用完整的文件路径,而是希望能够在没有所有 C:/users/... 位的情况下使用 text.txt。然后从那里开始,我不知道从哪里开始编写一个可以遍历每一行的算法,将数据变成我想要的数据。
  • 你应该学会从命令行使用python。这不那么令人头疼了。
  • 我编辑了我的答案,现在可以使用了。

标签: python string file text import


【解决方案1】:
with open("file.txt") as f:
    string = f.read()

formatted_string = string.replace("v ","")
formatted_string = formatted_string.replace("\n"," ")
str_numbers = formatted_string.split(" ")

with open("output.txt","w") as f:
    for i,num in enumerate(str_numbers):
        if i % 3 == 0:
            f.write(f"({float(num)},")
        elif i % 3 == 1:
            f.write(f" {float(num)},")
        else:
            f.write(f" {float(num)}), ")

将“filename.txt”替换为您的文件名。并确保文件的开头和结尾没有空格。

编辑:我已经在您的示例中对此进行了测试。

【讨论】:

  • 这几乎可以工作。在第一行,输出文本文件中的输出是:(0.188267, 3.068606,但它停在那里。在 Idk 之后没有空格。我想我知道问题出在哪里。
  • 文件末尾没有空格。我不知道为什么它停在第一行,错误消息显示:f.write(f" {float(num)}), ") ValueError: could not convert string to float: '0.003011\n-0.188267'
  • 问题可能是我需要用空格替换输入。立即尝试
  • 你能澄清一下吗?它是如何在这里的,线条环绕,不像在这里那样并排。这就是我发表原始帖子时 stackoverflow 的做法。
  • 是的,太棒了。它有效,但在输出文本中,我如何让它堆叠在一起而不是并排放置?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-07
  • 1970-01-01
相关资源
最近更新 更多