微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将文件中的每一行分成三个变量,然后打印出来?

如何解决如何将文件中的每一行分成三个变量,然后打印出来?

在编写“ who”命令并将其重定向到users.txt文件后,我需要将文本的每一行分解为三个变量:who,where和when_and_IP。并打印输出

library(dplyr)

df %>%
  mutate(col1 = pmin(seq01,seq02),col2 = pmax(seq01,.before = 1) %>%
  distinct(col1,col2,similarity)

#  col1  col2  similarity
#  <chr> <chr>      <dbl>
#1 a     b            100
#2 c     d             99  

我不确定我的代码有什么问题吗?

解决方法

您的代码有几个问题:

  • 您正在通过传递"w"参数以写入模式打开文件,这实际上将擦除文件的内容。使用"r"进行阅读,或者完全不指定模式,因为"r"是默认值。
  • file没有split方法,您需要对其进行迭代以对行进行操作,然后可能将它们拆分。
  • split的参数应该是您要分割的分隔符。如果您不传递任何参数,那么它将被任何空白字符(空格,制表符,换行符)分隔,这可能就是您想要的。
  • startswith不是file的方法,它是字符串的方法,它返回一个布尔值(TrueFalse),以指示字符串是否以子字符串。因此,在这里使用它似乎没有任何意义。

以下是一些可行的示例,可以帮助您实现目标:

>>> users = open("users.txt").readlines()
>>> users = [line.rstrip().split(maxsplit=2) for line in users]
>>> users
[['user1','tty7','2020-10-31 00:12 (:0)'],['user2','tty2','2020-11-07 14:43']]
>>> for who,where,when in users:
...     print(f"who={who},where={where},when={when}")
who=user1,where=tty7,when=2020-10-31 00:12 (:0)
who=user2,where=tty2,when=2020-11-07 14:43

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。