我如何修复我的代码中的这个子进程错误
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])
我尝试做笔记,但出现此错误,但它仍然做笔记。但也在这个过程中它停止了我的程序
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])