我有一个文件,其名称是5_1.txt,在我直接命名的目录中,
如何使用读取的指令读取该文件。
我使用以下方式验证了路径:
import os
os.getcwd()
os.path.exists(direct)
结果是 真的
x_file=open(direct,'r')
我收到了这个错误:
Traceback (most recent call last):
File "<pyshell#17>", line 1, in <module>
x_file=open(direct,'r')
IOError: [Errno 13] Permission denied
我不知道为什么我看不懂文件?有什么建议吗? 谢谢 。
答案 0 :(得分:24)
您似乎正在尝试打开目录进行阅读,就像它是常规文件一样。许多操作系统都不允许你这样做。你无论如何都不需要,因为你想要的(从你的描述来看)是
x_file = open(os.path.join(direct, "5_1.txt"), "r")
或只是
x_file = open(direct+"/5_1.txt", "r")
答案 1 :(得分:10)
如果你不在指定目录(即直接),你应该使用(在linux中):
x_file = open('path/to/direct/filename.txt')
注意引号和目录的相对路径。
这可能是您的问题,但您也无权访问该文件。 也许你试图以另一个用户的身份打开它。
答案 2 :(得分:3)
您无法使用open
功能“打开”目录。此函数用于打开文件。
在这里,您要做的是打开目录中的文件。您必须做的第一件事是计算此文件的路径。 os.path.join
函数可以通过连接路径的一部分(目录和文件名)来实现:
fpath = os.path.join(direct, "5_1.txt")
然后您可以打开文件:
f = open(fpath)
阅读其内容:
content = f.read()
此外,我相信在Windows上,在目录上使用open
确实会返回PermissionDenied
异常,尽管情况并非如此。
答案 3 :(得分:2)
我发现这种方式也很有用。
import tkinter.filedialog
from_filename = tkinter.filedialog.askopenfilename()
这里会出现一个窗口,您可以浏览直到找到该文件,单击它然后您可以继续使用打开,然后阅读。
from_file = open(from_filename, 'r')
contents = from_file.read()
contents
答案 4 :(得分:1)
对于Windows ,您可以使用带有'\\'的完整路径('/'用于Linux和Mac )作为分隔符,您可以使用os.getcwd获取当前工作目录并提供引用当前工作目录的路径
data_dir = os.getcwd()+'\\child_directory'
file = open(data_dir+'\\filename.txt', 'r')
当我试图完全给出child_diectory的路径时,会导致错误。对于例如在这种情况下:
file = open('child_directory\\filename.txt', 'r')
导致错误。但我认为它必须有效,或者我做得有些错误,但它对我不起作用。约会的方式总是有效。
答案 5 :(得分:0)
正如错误消息所示,您的应用程序无权从目录中读取。当您将目录创建为一个用户并将脚本作为另一个用户运行时,可能就是这种情况。
答案 6 :(得分:0)
对于像我这样的人来看待接受的答案,而不理解为什么它不起作用,你需要在子目录周围添加引号,在绿色检查的例子中,
x_file = open(os.path.join(direct, "5_1.txt"), "r")
实际应该是
x_file = open(os.path.join('direct', "5_1.txt"), "r")
答案 7 :(得分:-1)
x_file = open(os.path.join(直接,&#39; 5_1.txt&#39;),&#39; r&#39;)