Python 3.4.1:无法打开和读取本地文件

时间:2014-08-05 16:51:58

标签: python python-3.4

def functION():
    Source_obj = path.relpath("WebSource\EXAMPLE SOURCE.htm")
    data = Source_obj.read()

我在位于Python文件正下方的子目录中时打开此文件时遇到问题...有没有更好的方法从我的计算机上的任何目录中打开文件?

FileNotFoundError: [Errno 2] No such file or directory: 'WebSource\\EXAMPLE SOURCE.htm'

我无法从文件中读取,因为我收到以下错误:

C:\python34\python.exe G:\Robot\test.py
Process started >>>
Traceback (most recent call last):
  File "G:\Robot\test.py", line 118, in <module>
    functION()
  File "G:\Robot\test.py", line 64, in functION
    data = Source_obj.read()
AttributeError: 'str' object has no attribute 'read'
<<< Process finished. (Exit code 1)
================ READY ================

BTW:要读取的文件只是HTML Chrome网页上的源文件。

修改

我正在寻找更多关于路径的帮助,并想知道为什么我得到关于路径的第一个提到的回溯

2 个答案:

答案 0 :(得分:4)

os.path.relpath()会返回字符串,而不是打开的文件对象。你需要先打开一个文件;使用open() function

def functION():
    Source_obj = path.relpath(r"WebSource\EXAMPLE SOURCE.htm")
    with open(Source_obj) as fileobj:
        data = fileobj.read()

with这里将文件对象视为上下文管理器;当退出语句下的缩进代码块时(因为代码已完成或发生异常),文件对象将自动关闭。

答案 1 :(得分:1)

您的Source_obj只是一个字符串,而不是文件。

def functION():
    Source_obj = path.relpath("WebSource\EXAMPLE SOURCE.htm")
    with open(Source_obj) as f:
        data = f.read()

通过open() - 你可以从文件中读取。使用with上下文管理器,当您离开该代码块时,将正确关闭该文件。