我如何修复我的代码中的这个子进程错误

how do i fix this subprocess error in my code

我尝试做笔记,但出现此错误,但它仍然做笔记。但也在这个过程中它停止了我的程序

Traceback (most recent call last):
  File "C:/Users/passi/Documents/Heusc/main.py", line 168, in <module>
    note(note_text)
  File "C:/Users/passi/Documents/Heusc/main.py", line 149, in note
    subprocess.Popen(['notepad.exe'], filename)
  File "C:\Users\passi\AppData\Local\Programs\Python\Python38\lib\subprocess.py", line 757, in __init__
    raise TypeError("bufsize must be an integer")
TypeError: bufsize must be an integer
def note(text):
    date = datetime.datetime.now()
    filename = str(date).replace(':', '-') + '-note.txt'
    with open(filename, 'w') as f:
        f.write(text)
    subprocess.Popen(['notepad.exe'], filename)

参见this

class subprocess.Popen

subprocess.Popen(args, bufsize=-1, executable=None, stdin=None, stdout=None, stderr=None, preexec_fn=None, close_fds=True, shell=False, cwd=None, env=None, universal_newlines=None, startupinfo=None, creationflags=0, restore_signals=True, start_new_session=False, pass_fds=(), *, group=None, extra_groups=None, user=None, umask=-1, encoding=None, errors=None, text=None)

An example of passing some arguments to an external program as a sequence is:

Popen(["/usr/bin/git", "commit", "-m", "Fixes a bug."])

你的错误意味着这里把 filename 当作 bufsize。事实上,你在这里做错了语法,正确的是:

subprocess.Popen(['notepad.exe', filename])