在python中打开文件夹

时间:2014-12-14 14:54:15

标签: python client directory

我在python中有一个Client_server代码,但我无法运行客户端部分,我调试它但仍有错误,我认为存在错误,因为程序无法打开文件夹(文件),因为该地址不是对,请帮我纠正一下吧!

import socket
import sys
host = 'localhost'
port = 5000
file_name = sys.argv[0]
message = open(file_name+'/files/').read()
print ('Request\n', repr(message))
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((str(host), int(port)))
s.sendall(message)
data = s.recv(1024)
s.close()
print ('Response\n', repr(data))

我试图纠正我的代码,我的新代码是:

import socket
import sys
import os
host = 'localhost'
port = 5000
file_name = sys.argv[0]
message = open(os.path.dirname(file_name)+'/files/').read()
print ('Request\n', repr(message))
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((str(host), int(port)))
s.sendall(message)
data = s.recv(1024)
s.close()
print ('Response\n', repr(data))

C:\ Python33 \ python.exe C:/Users/M.H/Desktop/Client/Client.py Traceback(最近一次调用最后一次):   文件“C:/Users/M.H/Desktop/Client/Client.py”,第7行,in     message = open(os.path.dirname(file_name)+'/ files /')。read() PermissionError:[Errno 13]权限被拒绝:'C:/Users/M.H/Desktop/Client/files /'

现在我做什么???请帮帮我!!!!

1 个答案:

答案 0 :(得分:0)

问题似乎是您正在尝试阅读目录

以下问题是:

message = open(os.path.dirname(file_name)+'/files/').read()

您正在尝试打开os.path.dirname(file_name)+'/files/',这会转换为'C:/Users/M.H/Desktop/Client/files/' 文件夹。您无法打开文件夹进行阅读,并且Permission denied错误。如果要打开"文件中的文件"与Client.py文件处于同一级别的目录,然后您应该添加要读取的文件的名称。例如,如果该文件夹中有message.txt文件,则应该执行

message = open(os.path.dirname(file_name)+'/files/message.txt').read()

代码就像这样:

import socket
import sys
import os
host = 'localhost'
port = 5000
file_name = sys.argv[0]
# You need to pass the full path to the file instead of the folder to the open function
message = open(os.path.dirname(file_name)+'/files/message.txt').read()
print ('Request\n', repr(message))
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((str(host), int(port)))
s.sendall(message)
data = s.recv(1024)
s.close()
print ('Response\n', repr(data))