2015-04-21 39 views

回答

3

的一般解決方案是使用IOBuffertakebuf_string。如果這足以捕捉print輸出,然後

s = string(args...) 

給出了將已打印的print(args...)的字符串。另外,

s = repr(X) 

給出了將由showall(X)打印的字符串。兩者均在內部使用IOBuffertakebuf_string實施。

3

我覺得海報想訪問,你可以從的println得到很好的總結的格式。以字符串形式訪問它的一種方法是使用print來寫入緩衝區,然後將其作爲字符串讀回。可能還有一種更簡單的方法。

using DataFrames 
data = DataFrame() 
data[:turtle] = ["Suzy", "Suzy", "Bob", "Batman", "Batman", "Bob", "Adam"] 
data[:mealType] = ["bug", "worm", "worm", "bug", "worm", "worm", "stick"] 

stream = IOBuffer() 
println(data) 
print(stream, data) 
yourString = takebuf_string(stream) 

回報

"7x2 DataFrame\n| Row | turtle | mealType |\n|-----|----------|----------|\n| 1 | \"Suzy\" | \"bug\" |\n| 2 | \"Suzy\" | \"worm\" |\n| 3 | \"Bob\" | \"worm\" |\n| 4 | \"Batman\" | \"bug\" |\n| 5 | \"Batman\" | \"worm\" |\n| 6 | \"Bob\" | \"worm\" |\n| 7 | \"Adam\" | \"stick\" |" 
2

如果您格式的字符串後,您可以使用@sprintf

julia> x = @sprintf("%s", "hi") 
"hi" 

julia> x 
"hi" 

julia> x = @sprintf("%d/%d", 3, 4) 
"3/4" 

這是一個宏如@ARM如上所述雖然因此要小心