0

所以我在打开文件进行读取时遇到问题,所以我决定尝试一个 os.isfile 断言:

from Android_API_Parser import Android_API_Parser
import os.path

assert os.path.isfile("D:\Work\Python Workspace\Android_API_Parser\test.txt")

tester = Android_API_Parser()
tester.setFile("test.txt")
tester.parse()

它没有通过断言:

Traceback (most recent call last):
    File "D:\Work\Python Workspace\Android_API_Parser\src\Android_API_Tester.py", line         
    9, in <module>
assert os.path.isfile("D:\Work\Python Workspace\Android_API_Parser\test.txt")
AssertionError

我已经打开了我要打开的文件的路径并将其粘贴在下面:

D:\Work\Python Workspace\Android_API_Parser\test.txt

关于为什么它甚至未能通过断言的任何想法?除非我真的很累,否则文件显然位于那里。我什至尝试使用“/”和“\”,即使包含转义字符。

4

1 回答 1

4

字符串文字中,您必须使用另一个反斜杠转义反斜杠、使用原始字符串或使用正斜杠。否则,"\t"变为仅包含制表符的字符串。

尝试以下任何一种:

assert os.path.isfile("D:\\Work\\Python Workspace\\Android_API_Parser\\test.txt")
assert os.path.isfile(r"D:\Work\Python Workspace\Android_API_Parser\test.txt")
assert os.path.isfile("D:/Work/Python Workspace/Android_API_Parser/test.txt")
assert os.path.isfile(os.path.join("D:", "Work", "Python Workspace",
                                   "Android_API_Parser", "test.txt"))

该文件也可能不是常规文件。用于os.path.exists查看是否存在。

您也可能没有足够的权限查看文件,或者您期望的文件名可能是本地化的。要调试它,请运行:

path = ["Work", "Python Workspace", "Android_API_Parser", "test.txt"]
f = 'D:'
for p in path:
  f = os.path.join(f, p)
  print(f)
  assert os.path.exists(f)
assert os.path.isfile(f)
于 2012-09-14T06:50:27.007 回答