Python 3.4 加载数据目录

Posted

技术标签:

【中文标题】Python 3.4 加载数据目录【英文标题】:Python 3.4 load data directory 【发布时间】:2015-06-08 14:33:18 【问题描述】:

你好,了解 Python 的神圣人士。 我目前正在学习 Python 3.4 并且遇到了问题。 关于加载函数,即使我用正确的txt文件名使用这个函数,也会出现错误。

results = []
with open('text.txt') as inputfile:
    for line in inputfile:
        results.append(line.strip().split(','))

Traceback (most recent call last):
  File "F:/CSSE1001/Assignments/SunMum/030415.py", line 2, in <module>
    with open('stations.txt') as inputfile:
FileNotFoundError: [Errno 2] No such file or directory: 'text.txt'

看起来 Python 找不到 text.txt 的位置.. 有人可以告诉我如何设置函数的目录吗?谢谢。

【问题讨论】:

【参考方案1】:

您可能正在寻找os.chdir(path)。或者,您可以使用os.path.join(path, *paths) 动态构建绝对路径以移交给open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None) 函数。也可能是您的 text.txt 文件与您的 030415.py 文件 (F:/CSSE1001/Assignments/SunMum) 不在同一目录中。

更新:您可以通过多种方式加载整个文件。

如果你想以文本的形式读取文件的所有内容,你可以写data = open('text.txt', 'rt').read() 如果要获取文件的所有二进制数据,可以使用data = open('text.txt', 'rb').read() 如果您想要文件的行,获取它们的简单方法是使用lines = tuple(open('text.txt', 'rt')) 如果你想要没有换行符的行,你可以输入lines = open('text.txt', 'rt').read().split('\n') 如果您想在避免换行的同时高效处理行,可以使用for line in (line.strip('\n') for line in open('text.txt', 'rt')): 来启动 for 循环。 如果您使用的是 comma-separated values,您可能应该查看 Python 提供的 csv 模块的文档。

【讨论】:

感谢您的回答。但我还有另一个问题。当我应用该代码时,我无法获取 txt 文件的全部内容。有没有办法加载txt文件的全部内容?再次感谢您的回答。 @Charlie 添加了几个代码示例用于处理您的txt 文件。 感谢您的关心,它似乎已加载,但我无法访问它。我知道我应该使用列表,但我无法掌握。您能否提供一些提示/提示/指导?非常感谢。 @Charlie 您能否将文件内容粘贴到Pastebin,然后描述您应该如何处理该文件? pastebin.com/kpPmKwTE 这包含我试图加载到 python 的单词列表。我使用了open函数,之后使用了print函数,这给了我这个 <_io.textiowrapper name="text.txt" mode="r" encoding="cp1252"> 似乎加载了,但我很挣扎找到它的内容。再次感谢您的关心。

以上是关于Python 3.4 加载数据目录的主要内容,如果未能解决你的问题,请参考以下文章

在 python 3.4 中导入 tensorflow 时出错“无法加载本机 TensorFlow 运行时”

ExtJS 3.4 中未加载数据

如何使用 JSON 数据数组加载 extjs 3.4 存储

如何在 python 3.4 tkinter“索引错误:列表索引超出范围”中修复此错误

在 extjs 3.4 中刷新面板中的数据视图

ExtJS 3.4 - 设置加载