加载.txt文件并将其中的字符串转换为Sage笔记本中的可用数据的步骤



我用的是Mac OS 10.11.6,我正在学习Sage 7.2的笔记本界面。首先,我在Sage工作表中创建了一个包含字符串[1, 2, 3]的.txt文件,并将其保存。我可以直接打开文本文件并通过单击它来验证其内容,但我还不能在Sage中这样做。

我希望能够打开它并将字符串转换为可用的Sage对象。我希望你能给我明确的指示,不涉及我的圣人背景。谢谢你!

注意:我刚才在Sage文档中"保存和加载单个对象"下要求的过程在我的环境中不起作用(上面的规范)。我用A = [1, 2, 3]。然后我做save(A, 'A')和Sage返回A.sobj的热链接。然后我点击保存并退出按钮。然后我点击"退出"。然后我重新登录并进入我刚才描述的步骤的工作表。我做A = load('A')。Sage是这么说的:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "_sage_input_3.py", line 10, in <module>
    exec compile(u'open("___code___.py","w").write("# -*- coding: utf-8 -*-\n" + _support_.preparse_worksheet_cell(base64.b64decode("QSA9IGxvYWQoJ0EnKQ=="),globals())+"\n"); execfile(os.path.abspath("___code___.py"))
  File "", line 1, in <module>
  File "/private/var/folders/7n/t9k4hfyn44s2qp7wxt479kn80000gn/T/tmpEa1OkK/___code___.py", line 2, in <module>
    exec compile(u"A = load('A')" + 'n', '', 'single')
  File "", line 1, in <module>
  File "sage/structure/sage_object.pyx", line 1032, in sage.structure.sage_object.load (build/cythonized/sage/structure/sage_object.c:11594)
IOError: [Errno 2] No such file or directory: 'A.sobj'`

我在Finch的书中找到了答案。首先引用:

"我们使用Python标准库模块中的os模块来帮助我们编写可以在多个平台上运行的代码。文本文件必须有一个特殊字符来表示文件中每行的结束。不幸的是,由于历史原因,每种操作系统(Mac、Windows和UNIX)都使用不同的行尾字符。os模块有一个名为linesep的常量,其中包含运行代码的平台的正确字符。我们使用import os语句使模块可用,并使用os.linesep语法访问常量。我们还使用了os.path.join函数将文件名的路径与当前操作系统的正确字符连接起来。

节选自:克雷格芬奇。《Sage初学者指南》

使用名为"File2.txt"的文件的示例,该文件包含一个文本字符'1':

import os path='/Users/barrybrent/.sage/sage_notebook. 'sagenb/home/store/2/21/212/2123/admin/19/data/' fileName='File2.txt' times = [] text_file = open(os.path. path. txt)。join(path, fileName), 'r') line = text_file.readline()

(注释:只是一个字符串。将其转换为在计算中有用的Sage对象:)

元素= line.split (" ") times.append(浮动元素([0].strip ()))

(评论:评估:)

* [0]

(注释:Sage说"1.0"。现在我们可以用乘[0]做算术了吗?

* [0] + 1

Sage说"2.0"

最新更新