Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在运行.py脚本的目录中创建文件?_Python - Fatal编程技术网

Python 如何在运行.py脚本的目录中创建文件?

Python 如何在运行.py脚本的目录中创建文件?,python,Python,我试图在运行.py脚本的文件夹中创建一个文件。这是我正在使用的代码。问题是open函数需要/for目录。新的\u文件\u路径使用\代替。这导致打开功能失败。我该如何解决这个问题 import os dir_path = os.path.dirname(os.path.realpath(__file__)) new_file_path = str(os.path.join(dir_path, 'mynewfile.txt')) open(new_file_path, "x") 你试过简单点吗

我试图在运行.py脚本的文件夹中创建一个文件。这是我正在使用的代码。问题是open函数需要/for目录。新的\u文件\u路径使用\代替。这导致打开功能失败。我该如何解决这个问题

import os

dir_path = os.path.dirname(os.path.realpath(__file__))
new_file_path = str(os.path.join(dir_path, 'mynewfile.txt'))
open(new_file_path, "x") 
你试过简单点吗

import os

dir_path = os.getcwd()
open(dir_path +'mynewfile.txt', "x")
编辑:对不起,上次的消息保存不完整

您简单地尝试过吗

import os

dir_path = os.getcwd()
open(dir_path +'mynewfile.txt', "x")

编辑:对不起,上次的消息保存不完整

您需要使用
os.getcwd
来获取crrent工作目录

import os

dir_path = os.getcwd()
new_file_path = str(os.path.join(dir_path, 'mynewfile.txt'))
open(new_file_path, "x")

您需要使用
os.getcwd
来获取crrent工作目录

import os

dir_path = os.getcwd()
new_file_path = str(os.path.join(dir_path, 'mynewfile.txt'))
open(new_file_path, "x")

首先,正如@buran所评论的,没有必要使用
str
,以下内容就足够了:

new_file_path = os.path.join(dir_path, 'mynewfile.txt')
脚本存在的位置(由
\uuuuu file\uuuuu
给出)与当前工作目录(通常是调用脚本的位置)之间存在区别,当前工作目录由
os.getcwd()
给出。从问题的措词来看,我们并不完全清楚这两种措词的用意,尽管它们通常是相同的。但以下情况除外:

C:\Booboo>python3 test\my_script.py
C:\Booboo>python3 my_script.py
但在以下情况下,它们是:

C:\Booboo>python3 test\my_script.py
C:\Booboo>python3 my_script.py
但是,如果您试图在当前工作目录中打开一个文件,为什么还要费心调用
os.getcwd()
?根据定义,在不指定任何目录的情况下打开文件应将文件放置在当前工作目录中:

import os

with open('mynewfile.txt', "x") as f:
    # do something with file f (it will be closed for you automatically when the block terminates
另一个问题可能是,如果文件已经存在,则打开文件时使用了无效标志“
”x”
。试试看,
“w”


首先,正如@buran所评论的,没有必要使用
str
,以下内容就足够了:

new_file_path = os.path.join(dir_path, 'mynewfile.txt')
脚本存在的位置(由
\uuuuu file\uuuuu
给出)与当前工作目录(通常是调用脚本的位置)之间存在区别,当前工作目录由
os.getcwd()
给出。从问题的措词来看,我们并不完全清楚这两种措词的用意,尽管它们通常是相同的。但以下情况除外:

C:\Booboo>python3 test\my_script.py
C:\Booboo>python3 my_script.py
但在以下情况下,它们是:

C:\Booboo>python3 test\my_script.py
C:\Booboo>python3 my_script.py
但是,如果您试图在当前工作目录中打开一个文件,为什么还要费心调用
os.getcwd()
?根据定义,在不指定任何目录的情况下打开文件应将文件放置在当前工作目录中:

import os

with open('mynewfile.txt', "x") as f:
    # do something with file f (it will be closed for you automatically when the block terminates
另一个问题可能是,如果文件已经存在,则打开文件时使用了无效标志“
”x”
。试试看,
“w”


无需对来自
os.path.join()
的结果使用
str()
函数。并对你得到的信息进行全面追踪。在路径中使用正斜杠没有问题,不需要所有这些。。。默认设置为当前工作目录,因此只需打开一个简单的
open('mynewfile.txt','w')
即可完成任务…无需对
os.path.join()的结果使用
str()
函数。并对你得到的信息进行全面追踪。在路径中使用正斜杠没有问题,不需要所有这些。。。默认值为当前工作目录,因此简单的
打开('mynewfile.txt','w')
即可完成任务…抱歉,这是一个发送问题。请使用当前代码重试。首先,您需要
dir\u path+os.path.sep+'mynewfile1.txt'
,否则此
open
甚至无法成功。其次,默认情况下,如果不指定目录,系统将尝试在默认情况下打开当前工作目录中的文件(即当前工作目录的定义),因此完全不需要使用
os.getcwd()。这怎么可能是公认的答案?你好,兄弟。getcwd()返回一个字符串,其中包含调用python脚本的当前路径。通过简单的字符串连接,他成功地使用了open函数(当前路径加上文件名)。干杯那么他就必须在根目录
/
中。在任何其他目录中,例如
/home/Roni
getcwd()
将只返回
/home/Roni
,而不带尾随路径分隔符,并且您的代码在一般情况下不起作用(如果您在根目录中,盲目添加路径分隔符也不起作用)。这就是为什么您希望使用
os.path.join
,这两种情况都适用。所以我的评论是基于你的回答,作为一个通用的解决方案。“我的另一点是调用
getcwd()
完全没有必要。只需
open('mynewfile.txt','x'))
。也就是说,如果您想在当前工作目录中打开,该目录可以但不一定与保存脚本文件的目录相同。OP的问题不是100%清楚(至少我不清楚),这是他真正想要的,因为他尝试使用的是文件所在的
\uuuuu file\uuuuu
,但他喜欢您的getcwd(),这是当前的工作目录,它们可能并不总是相同的。抱歉,这是一个发送问题。请使用当前代码重试。首先,您需要
dir\u path+os.path.sep+'mynewfile1.txt'
或此
打开
甚至无法成功。其次,默认情况下,如果您不指定目录,系统将清空以默认打开当前工作目录中的文件(即当前工作目录的定义),这样就完全不需要使用
os.getcwd()
。这怎么可能是可接受的答案呢?Hello brother.os.getcwd()返回一个字符串,其中包含调用python脚本的当前路径。使用简单的字符串连接,他能够成功地使用函数open。(当前路径加上文件名)。干杯!那么他就必须在根目录
/
中。在任何其他目录中,例如
/home/Roni
getcwd()
只返回
/home/Roni
,而不带尾随路径分隔符,您的代码在