当前位置: 首页 > 知识库问答 >
问题:

奇怪的Beahviour。'read'在发出命令时有效,但在函数内无效

令狐泓
2023-03-14

我只是尝试用Julia重新开始(几年前做了一些尝试,但库仍然缺少太多的东西)。

如果我直接在函数外部运行这些相同的命令,我会得到我想要的,但是如果我把它们放在函数内部,我会在read_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[inlined][2]systemerror at./error.jl:167[inlined][3]查找at./iostream.jl:129[inlined][4]读取(::zipfile.readablefile,::int64)at/home/morgado/.julia/packages/zipfile/fdykp/src/zipfile.jl:508[5]at/home/morgado/.-级别范围位于IN[15]:1

编辑:增加了更多信息。

使用PKG;pkg.status()

Status `~/.julia/environments/v1.5/Project.toml`
  [c7e460c6] ArgParse v1.1.1
  [336ed68f] CSV v0.8.3
  [a93c6f00] DataFrames v0.21.8
  [92fee26a] GZip v0.5.1
  [7073ff75] IJulia v1.23.1
  [6f49c342] RCall v0.13.10
  [fd094767] Suppressor v0.2.0
  [70df011a] TableReader v0.4.0
  [a5390f91] ZipFile v0.9.3

共有1个答案

终祯
2023-03-14

我找到了答案,它是ZipFile包中一个5年前未解决的bug:(:https://github.com/fhs/ZipFile.jl/issues/14

需要用全局变量编写函数:

function read_datafile(fp)
    global z = ZipFile.Reader(fp)
    a = z.files[1]
    df = DataFrame(CSV.File(read(a)))
    
    return df
end
 类似资料:
  • 我有一个命令,用FFmpeg生成一个带有背景和文本的视频,并希望使用Azure批处理服务来呈现它。在本地“我的命令”有效: ./ffmpeg-f lavfi-i color=c=green:s=854x480:d=7-vf“[in]drawtext=fontsize=46:fontcolor=white:text=dfdhjf dhjfh djfh:x=(w-text_w)/2:y=((h-tex

  • 用户确认使用选定范围访问Google帐户的权限。 将检索刷新令牌并将其保存到长时间存储中。 每次需要时(如果访问令牌过期),都将检索访问令牌并用于访问API。 但有时(到目前为止,超过6个月只有两次)我会经历奇怪的行为: 我还尝试通过向https://www.googleapis.com/oauth2/v1/tokeninfo发送请求来验证“新”访问令牌 但是当我尝试访问驱动器提要时,响应是: 我

  • 问题内容: 我在这里遇到了我无法理解的被感染的情况。我将要编写的有关功能的文档也没有任何东西可以说明这一点。 我有一张桌子和一个田野。我在巴西,一些在这一领域中的字符有口音,我的目标是没有口音创建一个类似的字段(由原始字符代替,因为这成为等等)。 我可以使用一堆函数像,和其他函数那样来做,但是我在互联网上发现一个接缝看起来更加优雅,然后我使用了它。那就是问题所在。 我的更新代码是这样的: 就像我说

  • 我已经通过https://JWT.io为DocuSign生成了JWT令牌。现在,为了获得访问令牌,我在Curl中使用以下命令,在Windows命令行工具上。rrefering文档https://developers.docusign.com/esign-rest-api/guides/authentication/oauth2-jsonWebToken。我得到了“无效授权”。我的请求有什么问题?我

  • 我有两个web应用程序项目,都位于TFS源代码管理中。第一个项目不会引起反伪造令牌的问题。 这就是错误所在 类型System的异常。发生在System.网页。WebPages.dll但未在用户代码中处理 附加信息:类型为'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier“或者”http://schemas.mi

  • 我正在 Azure 上试验两种基于 .NET Framework 的机制,它们可以由计时器触发:Azure Function v1 和 WebJob。AF 部署在函数应用上,WebJob 部署在 Api 应用上。两者都有免费计划集。 我希望通过有一个CRON计划(使用:“0*/10 * * * *" 每10分钟测试一次)来重复运行一些测试代码(控制台中的一行)将是一项简单的任务。似乎不是这样。 注