Function 奇怪的动物`read`在发出命令时起作用,但在函数内部不起作用
我只是想重新开始与朱莉娅(几年前做了一些尝试,但图书馆仍然缺少太多的东西) 我现在正在尝试一些非常简单的方法,但不明白为什么不起作用 如果我直接在函数外部运行这些非常相同的命令,我会得到我想要的,但是如果我将它们放在函数内部,在调用我的Function 奇怪的动物`read`在发出命令时起作用,但在函数内部不起作用,function,julia,Function,Julia,我只是想重新开始与朱莉娅(几年前做了一些尝试,但图书馆仍然缺少太多的东西) 我现在正在尝试一些非常简单的方法,但不明白为什么不起作用 如果我直接在函数外部运行这些非常相同的命令,我会得到我想要的,但是如果我将它们放在函数内部,在调用我的read\u datafile函数中的read命令时会出错: using ArgParse, ZipFile, CSV, DataFrames function read_datafile(fp) z = ZipFile.Reader(fp) a
read\u datafile
函数中的read
命令时会出错:
using ArgParse, ZipFile, CSV, DataFrames
function read_datafile(fp)
z = ZipFile.Reader(fp)
a = z.files[1]
df = DataFrame(CSV.File(read(a)))
return df
end
read_datafile("./folder1/test.zip")
SystemError:seek:错误的文件描述符
Stacktrace:[1]#systemerror#48 at./error.jl:167[内联][2]
systemerror位于./error.jl:167[内联][3]seek位于./iostream.jl:129
[内联][4]读取(::ZipFile.ReadableFile,::Int64)
/home/morgado/.julia/packages/ZipFile/fdYkP/src/ZipFile.jl:508[5]
阅读/home/morgado/.julia/packages/ZipFile/fdYkP/src/ZipFile.jl:504
[inlined][6]读取位于./In[14]:4[7]顶层的数据文件(::字符串)
[15]中的范围:1
编辑:
添加了更多信息
使用Pkg;包装状态()
我找到了答案,这是ZipFile包中一个5年未解决的bug:(: 需要使用全局变量编写函数:
function read_datafile(fp)
global z = ZipFile.Reader(fp)
a = z.files[1]
df = DataFrame(CSV.File(read(a)))
return df
end
我看不到您似乎收到的错误。您可以通过使用Pkg;Pkg.status())共享
的输出来发布您正在使用的软件包的版本吗?@PaSTE-Sure刚刚添加了这一点。这确实是一种奇怪的行为,在Jupyter笔记本中或通过从命令行调用文件都会发生。
function read_datafile(fp)
global z = ZipFile.Reader(fp)
a = z.files[1]
df = DataFrame(CSV.File(read(a)))
return df
end