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 に答える