根据我读过的所有资源,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函数的所有不同模式,它们都给了我相同的错误。
答案 0 :(得分:1)
您似乎没有对当前工作目录的写入权限。您可以使用import os; print os.getcwd()
获取Python工作目录。
然后,您应该检查您是否在此目录中具有写入权限。这可以在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'
?)。
答案 1 :(得分:0)
您确定要创建文件夹的目录是否存在?
如果不是......那么操作系统将无法创建文件。
答案 2 :(得分:0)
这看起来像权限问题。
目录不存在或者您的用户没有写入此目录的权限。
答案 3 :(得分:0)
我猜可能存在的问题可能是:
1)您将路径和basename作为参数传递。如果您将参数作为字符串传递,那么您可能会遇到此问题:
例如:
def getIngredients(path, basename):
ingredient = []
filename = path + '\\' + basename
getIngredients("D","newlist.txt")
如果以上述方式传递参数,则表示您正在执行此操作
filename = "D" + "\\" + "newlist.txt"
2)您在文件名中的路径+后面没有包含冒号(:) 。
3)也许,该文件不存在。