除非我在shell窗口中按ENTER键,否则不会使用python创建新的文本文件

问题描述 投票:0回答:2

我是python的新手,正在编写一个从文本文件中取一个句子的脚本,检查它的拼写并将结果返回到一个新的文本文件。当我运行脚本时,shell窗口打开,新的文本文件没有创建,除非我在shell窗口中按ENTER键。我想直接发生创作而不按ENTER。我该如何解决?谢谢。

import sys
import nltk
import enchant
import os
from pathlib import Path
my_file=Path('C:/Users/HP/Documents/result.txt')
if my_file.is_file():
    os.remove("C:/Users/HP/Documents/result.txt")
    save_path='C:/Users/HP/Documents'
    name_of_file=input("result.txt")
    completeName=os.path.join(save_path,name_of_file+"result.txt")
    file1=open(completeName,"w")
    with open ("C:/Users/HP/Documents/test.txt") as myfile:
        data=myfile.read().replace('\n','')
    from enchant.checker import SpellChecker
    chkr=SpellChecker("fr")
    chkr.set_text(data)
    for err in chkr:
        var=("ERROR:",err.word)
        file1.write(str(var))
    file1.close()
else:
    save_path='C:/Users/HP/Documents'
    name_of_file=input("result.txt")
    completeName=os.path.join(save_path,name_of_file+"result.txt")
    file1=open(completeName,"w")
    with open ("C:/Users/HP/Documents/test.txt") as myfile:
        data=myfile.read().replace('\n','')
    from enchant.checker import SpellChecker
    chkr=SpellChecker("fr")
    chkr.set_text(data)
    for err in chkr:
        var=("ERROR:",err.word)
        file1.write(str(var))
    file1.close()
python python-requests wxpython python-3.6
2个回答
1
投票

尝试删除input

name_of_file="result.txt"

如果您希望用户从键盘输入字符串,则需要input。因此,您的程序等待按下ENTER键。


0
投票

删除对input()的调用,该调用要求用户按Enter键以终止输入(如果有)。

name_of_file=input("result.txt")

如果用户只按Enter键,则name_of_file将为空字符串。但是,由于此用户输入用于构造可写文件的路径,因此您应该小心此条目,因为用户可以键入意外的内容,例如../,结果输出文件将是C:/Users/HP/Documents/../result.txt,可能无意中(或可能是故意)覆盖不同的文件。

© www.soinside.com 2019 - 2024. All rights reserved.