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

您似乎没有对当前工作目录的写入权限。您可以使用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

这看起来像一个权限问题。

该目录不存在或您的用户没有写入该目录的权限。

于 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 回答
0

您确定要在其中创建文件夹的目录存在吗?

如果它没有......那么操作系统将无法创建文件。

于 2012-05-13T01:38:32.863 回答