在不同的文件夹上使用python创建文件

时间:2017-09-13 10:32:34

标签: python

我正在使用远程服务器,比如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)上创建。谁能告诉我为什么它不是在给定的目的地创建文件?

3 个答案:

答案 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+");