在R中包含ASCII艺术

时间:2015-11-10 11:17:01

标签: r ascii-art

我正在写一个小程序,想知道是否有办法在R中包含ASCII艺术。我在python中寻找相当于三个引号("""'''

我尝试使用catprint但没有成功。

3 个答案:

答案 0 :(得分:7)

不幸的是,R只能通过使用单引号或双引号来表示文字字符串,这使得表示ascii艺术变得尴尬;但是,您可以执行以下操作来获取可以使用R的cat函数输出的艺术作品的文本表示。

1)首先将您的作品放在文本文件中:

# ascii_art.txt is our text file with the ascii art
# For test purposes we use the output of say("Hello") from cowsay package 
# and put that in ascii_art.txt
library(cowsay)
writeLines(capture.output(say("Hello"), type = "message"), con = "ascii_art.txt")

2)然后阅读该文件并使用dput

art <- readLines("ascii_art.txt")
dput(art)

给出了这个输出:

c("", " -------------- ", "Hello ", " --------------", "    \\", 
"      \\", "        \\", "            |\\___/|", "          ==) ^Y^ (==", 
"            \\  ^  /", "             )=*=(", "            /     \\", 
"            |     |", "           /| | | |\\", "           \\| | |_|/\\", 
"      jgs  //_// ___/", "               \\_)", "  ")

3)最后在你的代码中写:

art <- # copy the output of `dput` here

因此您的代码将包含此内容:

art <-
c("", " -------------- ", "Hello ", " --------------", "    \\", 
"      \\", "        \\", "            |\\___/|", "          ==) ^Y^ (==", 
"            \\  ^  /", "             )=*=(", "            /     \\", 
"            |     |", "           /| | | |\\", "           \\| | |_|/\\", 
"      jgs  //_// ___/", "               \\_)", "  ")

4)现在,如果我们只显示cat art变量,那就显示出来了:

> cat(art, sep = "\n")

 -------------- 
Hello 
 --------------
    \
      \
        \
            |\___/|
          ==) ^Y^ (==
            \  ^  /
             )=*=(
            /     \
            |     |
           /| | | |\
           \| | |_|/\
      jgs  //_// ___/
               \_)

答案 1 :(得分:2)

替代方法:使用API​​

网址 - artii

步骤:

  1. 获取数据ascii_request <- httr::GET("http://artii.herokuapp.com/make?text=this_is_your_text&font=ascii___")
  2. 检索回复 - ascii_response <- httr::content(ascii_request,as = "text", encoding = "UTF-8")
  3. cat it out - cat(ascii_response)
  4. 如果未连接到网络,您可以设置自己的服务器。 Read more here

    感谢@johnnyaboh设置这项了不起的服务

答案 2 :(得分:-2)

尝试cat功能,这样的事情应该有效:

cat(" \"\"\" ")