Python 打开(“text.txt”和“w+”)不会创建新文件

Python 打开(“text.txt”和“w+”)不会创建新文件,python,file-io,filenotfoundexception,file-not-found,Python,File Io,Filenotfoundexception,File Not Found,我正在尝试使用open(filename,'x')创建一个文本文件。我试过x='a+','w+','w'。我使用的是Windows10、vs代码“在终端中运行python文件”和python 3.8.2 import os print("cwd",os.getcwd()) scriptpath = os.path.dirname(__file__) filename = "test.txt" #1 #filename = scriptpath + "

我正在尝试使用open(filename,'x')创建一个文本文件。我试过x='a+','w+','w'。我使用的是Windows10、vs代码“在终端中运行python文件”和python 3.8.2

    import os

    print("cwd",os.getcwd())

    scriptpath = os.path.dirname(__file__)

    filename = "test.txt" #1
    #filename = scriptpath + "/test.txt" #2
    #filename = r"C:\Users\harki\Documents\ALGO\ALGO-NPL\test.txt" #3

    f = open(filename,'w+')
    f.write("test")
    f.close()
使用第一个文件名运行:

PS C:\Users\harki\Documents\ALGO\ALGO-NPL> & C:/Users/harki/AppData/Local/Programs/Python/Python38/python.exe c:/Users/harki/Documents/ALGO/ALGO-NPL/test_save.py
cwd C:\Users\harki\Documents\ALGO\ALGO-NPL
Traceback (most recent call last):
  File "c:/Users/harki/Documents/ALGO/ALGO-NPL/test_save.py", line 11, in <module>
    f = open(filename,'w+')
FileNotFoundError: [Errno 2] No such file or directory: 'test.txt'
PS C:\Users\harki\Documents\ALGO\ALGO-NPL> & C:/Users/harki/AppData/Local/Programs/Python/Python38/python.exe c:/Users/harki/Documents/ALGO/ALGO-NPL/test_save.py
cwd C:\Users\harki\Documents\ALGO\ALGO-NPL
Traceback (most recent call last):
  File "c:/Users/harki/Documents/ALGO/ALGO-NPL/test_save.py", line 11, in <module>
    f = open(filename,'w+')
FileNotFoundError: [Errno 2] No such file or directory: 'c:/Users/harki/Documents/ALGO/ALGO-NPL/test.txt'
PS C:\Users\harki\Documents\ALGO\ALGO-NPL> & C:/Users/harki/AppData/Local/Programs/Python/Python38/python.exe c:/Users/harki/Documents/ALGO/ALGO-NPL/test_save.py
cwd C:\Users\harki\Documents\ALGO\ALGO-NPL
Traceback (most recent call last):
  File "c:/Users/harki/Documents/ALGO/ALGO-NPL/test_save.py", line 11, in <module>
    f = open(filename,'w+')
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\harki\\Documents\\ALGO\\ALGO-NPL\\test.txt'
PS C:\Users\harki\Documents\ALGO\ALGO-NPL>&C:/Users/harki/AppData/Local/Programs/Python/Python38/Python.exe C:/Users/harki/Documents/ALGO/ALGO-NPL/test\u save.py
cwd C:\Users\harki\Documents\ALGO\ALGO-NPL
回溯(最近一次呼叫最后一次):
文件“c:/Users/harki/Documents/ALGO/ALGO-NPL/test_save.py”,第11行,在
f=打开(文件名为“w+”)
FileNotFoundError:[Errno 2]没有这样的文件或目录:“test.txt”
使用第二个文件名运行:

PS C:\Users\harki\Documents\ALGO\ALGO-NPL> & C:/Users/harki/AppData/Local/Programs/Python/Python38/python.exe c:/Users/harki/Documents/ALGO/ALGO-NPL/test_save.py
cwd C:\Users\harki\Documents\ALGO\ALGO-NPL
Traceback (most recent call last):
  File "c:/Users/harki/Documents/ALGO/ALGO-NPL/test_save.py", line 11, in <module>
    f = open(filename,'w+')
FileNotFoundError: [Errno 2] No such file or directory: 'test.txt'
PS C:\Users\harki\Documents\ALGO\ALGO-NPL> & C:/Users/harki/AppData/Local/Programs/Python/Python38/python.exe c:/Users/harki/Documents/ALGO/ALGO-NPL/test_save.py
cwd C:\Users\harki\Documents\ALGO\ALGO-NPL
Traceback (most recent call last):
  File "c:/Users/harki/Documents/ALGO/ALGO-NPL/test_save.py", line 11, in <module>
    f = open(filename,'w+')
FileNotFoundError: [Errno 2] No such file or directory: 'c:/Users/harki/Documents/ALGO/ALGO-NPL/test.txt'
PS C:\Users\harki\Documents\ALGO\ALGO-NPL> & C:/Users/harki/AppData/Local/Programs/Python/Python38/python.exe c:/Users/harki/Documents/ALGO/ALGO-NPL/test_save.py
cwd C:\Users\harki\Documents\ALGO\ALGO-NPL
Traceback (most recent call last):
  File "c:/Users/harki/Documents/ALGO/ALGO-NPL/test_save.py", line 11, in <module>
    f = open(filename,'w+')
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\harki\\Documents\\ALGO\\ALGO-NPL\\test.txt'
PS C:\Users\harki\Documents\ALGO\ALGO-NPL>&C:/Users/harki/AppData/Local/Programs/Python/Python38/Python.exe C:/Users/harki/Documents/ALGO/ALGO-NPL/test\u save.py
cwd C:\Users\harki\Documents\ALGO\ALGO-NPL
回溯(最近一次呼叫最后一次):
文件“c:/Users/harki/Documents/ALGO/ALGO-NPL/test_save.py”,第11行,在
f=打开(文件名为“w+”)
FileNotFoundError:[Errno 2]没有这样的文件或目录:“c:/Users/harki/Documents/ALGO/ALGO-NPL/test.txt”
使用第三个文件名运行:

PS C:\Users\harki\Documents\ALGO\ALGO-NPL> & C:/Users/harki/AppData/Local/Programs/Python/Python38/python.exe c:/Users/harki/Documents/ALGO/ALGO-NPL/test_save.py
cwd C:\Users\harki\Documents\ALGO\ALGO-NPL
Traceback (most recent call last):
  File "c:/Users/harki/Documents/ALGO/ALGO-NPL/test_save.py", line 11, in <module>
    f = open(filename,'w+')
FileNotFoundError: [Errno 2] No such file or directory: 'test.txt'
PS C:\Users\harki\Documents\ALGO\ALGO-NPL> & C:/Users/harki/AppData/Local/Programs/Python/Python38/python.exe c:/Users/harki/Documents/ALGO/ALGO-NPL/test_save.py
cwd C:\Users\harki\Documents\ALGO\ALGO-NPL
Traceback (most recent call last):
  File "c:/Users/harki/Documents/ALGO/ALGO-NPL/test_save.py", line 11, in <module>
    f = open(filename,'w+')
FileNotFoundError: [Errno 2] No such file or directory: 'c:/Users/harki/Documents/ALGO/ALGO-NPL/test.txt'
PS C:\Users\harki\Documents\ALGO\ALGO-NPL> & C:/Users/harki/AppData/Local/Programs/Python/Python38/python.exe c:/Users/harki/Documents/ALGO/ALGO-NPL/test_save.py
cwd C:\Users\harki\Documents\ALGO\ALGO-NPL
Traceback (most recent call last):
  File "c:/Users/harki/Documents/ALGO/ALGO-NPL/test_save.py", line 11, in <module>
    f = open(filename,'w+')
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\harki\\Documents\\ALGO\\ALGO-NPL\\test.txt'
PS C:\Users\harki\Documents\ALGO\ALGO-NPL>&C:/Users/harki/AppData/Local/Programs/Python/Python38/Python.exe C:/Users/harki/Documents/ALGO/ALGO-NPL/test\u save.py
cwd C:\Users\harki\Documents\ALGO\ALGO-NPL
回溯(最近一次呼叫最后一次):
文件“c:/Users/harki/Documents/ALGO/ALGO-NPL/test_save.py”,第11行,在
f=打开(文件名为“w+”)
FileNotFoundError:[Errno 2]没有这样的文件或目录:“C:\\Users\\harki\\Documents\\ALGO\\ALGO-NPL\\test.txt”
编辑:
将项目移到“Documents”文件夹之外解决了问题

我使用此代码定义文件路径,它适用于我:

filename = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'folder/name', 'test.txt')
然后我使用joblib或pickle创建文件


在您的情况下,它类似于第二个文件名,只需添加
join()
函数

我使用此代码定义文件路径,它适用于我:

filename = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'folder/name', 'test.txt')
然后我使用joblib或pickle创建文件


在您的情况下,它类似于第二个文件名,只需要添加与问题无关的
join()
函数,我只是好奇:我总是看到这里的人们使用
w+
而不是
w
,即使他们只是在写,而不是在读。你为什么这么做?我运行了你的代码,它对我来说运行得很好。检查是否存在简单错误,例如意外运行不同版本的Python或VSCode出现问题。当使用VSCODE开发Python 3 .x.x和C++时,我遇到了一些问题。我无法复制这个问题。您的代码运行良好。也许是权限问题?您是否尝试过在管理员模式下运行cmd/powershell“以管理员身份运行”?与问题无关,我只是好奇:我总是看到这里的人使用
w+
而不是
w
,即使他们只是在写,而不是在读。你为什么这么做?我运行了你的代码,它对我来说运行得很好。检查是否存在简单错误,例如意外运行不同版本的Python或VSCode出现问题。当使用VSCODE开发Python 3 .x.x和C++时,我遇到了一些问题。我无法复制这个问题。您的代码运行良好。也许是权限问题?您是否尝试在管理员模式“以管理员身份运行”下运行cmd/powershell?它不应该是
os.path.join()
?是的,我使用从os.path导入join、dirname、realpath导入它。所以它应该是os.path.join(dirname(realpath(file)),'folder/name','test.txt')。你应该在答案中明确它。完成了,我改变了它。
filename=os.path.join(os.path.dirname(os.path.realpath(uu文件)),'test.txt')
创建了与上面的filename#3相同的路径和错误,不是吗
os.path.join()
,我从os.path导入了它。导入join,dirname,realpath。所以它应该是os.path.join(dirname(realpath(file)),'folder/name','test.txt')。你应该在答案中明确它。完成后,我更改了它。
filename=os.path.join(os.path.dirname(os.path.realpath(uuu文件)),'test.txt')
创建了与上面文件名3相同的路径和错误