poo*_*oky 5 python file file-read julia
为什么这些之间有区别?:
# Python
f = open("./text.txt", "r")
for i in f.readlines():
for l in i:
print(print(l == "\n", ":", l))
f.close()
# -----------------------------
# Julia
f = open("./text.txt", "r")
while !eof(f)
for l in readline(file)
println(l == '\n', " : ", l)
end
end
close(f)
Run Code Online (Sandbox Code Playgroud)
Python 输出如下:
False : h
False : e
False : l
False : l
False : o
False :
False : W
False : o
False : r
False : l
False : d
True :
<--- yep, it is as expected
False : y
False : a
False : y
Run Code Online (Sandbox Code Playgroud)
Julia 输出如下:
false : h
false : e
false : l
false : l
false : o
false : <--- is this not a \n??
false : W
false : o
false : r
false : l
false : d
false : y
false : a
false : y
Run Code Online (Sandbox Code Playgroud)
text.txt这是:
hello World
yay
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,输出是不同的。我怎样才能让 Julia 的行为像 Python 一样?在 Julia 中还有其他读取文件的方法吗?
你可以这样做:
# Julia
f = open("./text.txt", "r")
while !eof(f)
for l in readline(file, keep=true)
println(l == '\n', " : ", l)
end
end
close(f)
Run Code Online (Sandbox Code Playgroud)
默认情况下,它会丢弃\n's,但您可以通过添加 来保留它们keep=true。
小智 7
keep=true这是使用user17558100 的建议的更加朱利安(和更正的)版本:
open("./text.txt", "r") do f
for l in readlines(f, keep=true)
foreach(c->println(c == '\n', " : ",c), l)
end
end
Run Code Online (Sandbox Code Playgroud)
此do格式与 Python 的语句相同with,这确保文件在没有显式close()调用的情况下关闭。
| 归档时间: |
|
| 查看次数: |
458 次 |
| 最近记录: |