我正在使用远程服务器,比如IP:192.128.0.3。在此服务器上有两个文件夹:cgi-bin
& html
。我的python代码文件在cgi-bin
中,它希望在html/Rohith/
中生成data.json文件,其中Rohith文件夹已经存在。我使用以下代码
jsonObj = json.dumps(main_func(s));
fileobj = open("http://192.128.0.3/Rohith/data.json","w+");
fileobj.write(jsonObj);
但它不是在那里创建文件,虽然我可以在我的python脚本的同一文件夹(cgi-bin)上创建。谁能告诉我为什么它不是在给定的目的地创建文件?
答案 0 :(得分:1)
file.write不创建目录首先你必须创建一个目录然后使用file.write()例如
if not os.path.exists("../html/Rohith/"):
os.makedirs("../html/Rohith/")
jsonObj = json.dumps(mainfunc(s))
fileobj = open("../html/Rohith/data.json","w+")
fileobj.write(jsonObj)
答案 1 :(得分:1)
可能是道路问题;我建议改用完整路径。请尝试以下方法:
import os
jsonObj = json.dumps(main_func(s));
path = '\\'.join(__file__.split('\\')[:-2]) # this will return the parent
# folder of cgi-bin on Windows
out_file = path + '/html/Ronhith/data.json'
fileobj = open(out_file, 'w+') # w+ mode creates the file if its not exists
fileobj.write(jsonObj)
如果仍无效,请尝试将文件模式从a+
更改为w+
a + 打开附加和读取的文件。如果文件存在,则文件指针位于文件的末尾。该文件以追加模式打开。 如果该文件不存在,则会创建一个用于读写的新文件。
答案 2 :(得分:0)
感谢那个坐在我旁边的家伙!当我将路径更改为本地目的地而非IP路径时,它可以工作:
fileobj = open("/var/www/html/Rohith/data.json","w+");