1

私が読んだすべてのソースによると、このopenメソッドはファイルを作成するか、既存の名前でファイルを上書きします。しかし、私はそれを使用しようとしていますが、エラーが発生します:

File not found - newlist.txt (Access is denied)
I/O operation failed.

ファイルを読み込もうとしましたが、できませんでした。そのファイルが存在することを確認しますか? 存在する場合、正しいディレクトリ/フォルダを指定しましたか?

def getIngredients(path, basename):
  ingredient = []
  filename = path + '\\' + basename
  file = open(filename, "r")
  for item in file: 
    if item.find("name") > -1:
      startindex = item.find("name") + 5
      endindex = item.find("<//name>") - 7
      ingredients = item[startindex:endindex]
      ingredient.append(ingredients)

  del ingredient[0]
  del ingredient[4]


  for item in ingredient:
    printNow(item)

  file2 = open('newlist.txt', 'w+')  

  for item in ingredient:  
     file2.write("%s \n" % item) 

ご覧のとおり、作成したリストをファイルに書き込もうとしていますが、本来のように作成していません。open 関数のさまざまなモードをすべて試しましたが、すべて同じエラーが発生します。

4

4 に答える 4

1

現在の作業ディレクトリへの書き込みアクセス権がないようです。で Python 作業ディレクトリを取得できますimport os; print os.getcwd()

次に、このディレクトリに書き込みアクセス権があるかどうかを確認する必要があります。これはPythonで実行できます

import os
cwd = os.getcwd()
print "Write access granted to current directory", cwd, '>', os.access(cwd, os.W_OK)

False(書き込みアクセスがない)場合は、ファイルを別の場所(おそらく?)に配置する必要がありnewfile.txtますpath + '/newfile.txt'

于 2012-05-13T01:51:40.423 に答える
0

フォルダを作成しようとしているディレクトリが存在することを確認しますか?

そうでない場合...OSはファイルを作成できません。

于 2012-05-13T01:38:32.863 に答える
0

これは権限の問題のようです。

ディレクトリが存在しないか、ユーザーにこのディレクトリへの書き込み権限がありません。

于 2012-05-13T01:48:26.227 に答える
0

考えられる問題は次のとおりだと思います。

1) パスとベース名をパラメーターとして渡します。パラメータを文字列として渡す場合、次の問題が発生する可能性があります。

例えば:

def getIngredients(path, basename):
  ingredient = []
  filename = path + '\\' + basename


getIngredients("D","newlist.txt")

上記の方法でパラメーターを渡す場合、これはこれを行っていることを意味します

filename = "D" + "\\" + "newlist.txt"

2)ファイル名のパス + の後にコロン (:)が含まれていません。

3) ファイルが存在しない可能性があります。

于 2012-05-13T01:56:15.557 に答える