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

在不同文件夹上使用python创建文件,python,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(jso

我在一个远程服务器上工作,比如说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脚本的同一文件夹(CGIBIN)上创建文件,但它并没有在那里创建文件。有人能告诉我为什么不在给定的目标中创建文件吗?

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)

这可能是路径问题;我建议改为使用完整路径。请尝试以下操作:

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)
如果仍不工作,请尝试将文件模式从
w+

a+打开一个文件进行附加和读取。如果文件存在,则文件指针位于文件末尾。该文件以追加模式打开如果该文件不存在,它将创建一个新文件用于读写。


谢谢坐在我旁边的那个家伙!当我将路径更改为本地目标而不是IP路径时,它会起作用:

fileobj = open("/var/www/html/Rohith/data.json","w+");

请删除“;”pythonRemove
“http:
是的,它是可选的,但我想把它放在下面@阿曼贾伊斯瓦尔:)@cᴏʟᴅsᴘᴇᴇᴅ 刚试过,不起作用。请分享你遇到的错误。你不能直接将json数据写入文件。你必须将其转换为字符串。json数据是一个命令,但我可以在同一文件夹中创建。谢谢。它之所以有效,是因为它返回的是本地路径,而不是IP路径。欢迎你,如果你发现我的答案有用,请考虑接受答案选择你的答案。但你为什么否决了我的问题?@Rohit。我没有否决你的问题。当我这样做时,我会留下评论,以改进用户提出的下一个问题