【问题标题】:Write filename to first line of text将文件名写入第一行文本
【发布时间】:2016-05-25 23:32:43
【问题描述】:

我有正在使用 grep() 操作的文本文件,我想将文件名添加到文本的第一行。我是 R 新手并被卡住了。有什么建议么?谢谢!

【问题讨论】:

    标签: r string


    【解决方案1】:

    我不确定您的文本文件的内容应该是什么,但如果该文件有一个有效的注释字符,我建议将它放在文件名的前面。您可以使用readLineswrite 的组合来完成此操作。

    首先,您需要使用readLines 读取文件的内容。然后你制作一个文件名的向量,然后是来自readLines 的内容。然后将向量写回它来自的文件。

    说实话,最好将其写入不同的文件而不更改您的源材料,但我会让您自己弄清楚您想如何管理它。下面的代码使用临时文件进行说明

    #* Create a temporary file
    this_file <- tempfile("an_example_file", tmpdir = getwd(), fileext = ".txt")
    
    #* Populate the file with some text
    write(LETTERS, this_file)
    
    #* Here's the real start of the solution
    file_text <- readLines(this_file)
    
    write(
      paste0(
        c(sprintf("## %s \n\n", this_file),
          file_text)
      ),
      this_file
    )
    
    #* see the changes
    readLines(this_file)
    
    #* cleanup
    file.remove(this_file)
    

    【讨论】:

    • 感谢您的帮助和解释过程。这是用于生物序列数据和修改一个程序的输出以由另一个程序导入。当我生成文件时,正确命名文件很容易,但使用正确的第一行文本手动编辑它们要困难得多,以便稍后由其他程序读取。我的文件没有有效的注释字符。你没有改变源材料是对的,但我只是将一堆副本放在不同的目录中并在那里修改它们。
    • @DanK 您应该列一个列表,然后为列表中的项目指定文件名。不要走“SAS 路径”,认为您需要编写将从文件中删除行或具有您将使用 for 循环操作的重复结构的代码。
    【解决方案2】:
    filename <- 'whatever.txt'
    file.text <- readLines(filename)
    file.text <- c(filename, file.text) # adds filename to beginning of file.text
    fileConn<-file(filename)
    writeLines(file.text, fileConn)
    close(fileConn)
    

    【讨论】:

    • 谢谢,它会粘贴整个路径,但我可以使用它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-06
    • 2015-10-27
    • 1970-01-01
    • 2013-10-18
    • 2016-03-09
    • 2019-08-03
    • 1970-01-01
    相关资源
    最近更新 更多