我正在写一个小程序,想知道是否有办法在R中包含ASCII艺术。我在python中寻找相当于三个引号("""
或'''
)
我尝试使用cat
或print
但没有成功。
答案 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
步骤:
ascii_request <- httr::GET("http://artii.herokuapp.com/make?text=this_is_your_text&font=ascii___")
ascii_response <- httr::content(ascii_request,as = "text", encoding = "UTF-8")
cat(ascii_response)
如果未连接到网络,您可以设置自己的服务器。 Read more here
感谢@johnnyaboh设置这项了不起的服务
答案 2 :(得分:-2)
尝试cat功能,这样的事情应该有效:
cat(" \"\"\" ")