繁体   English   中英

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

[英]Creating a new text file with python is not happening unless i press ENTER in shell window

python的新手,正在研究从文本文件中获取句子,检查其拼写并将结果返回到新文本文件的脚本。 运行脚本时,除非在外壳窗口中按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()

尝试删除input

name_of_file="result.txt"

input ,如果你想用户输入通过键盘字符串是必要的。 因此,您的程序等待ENTER键被按下。

删除对input()的调用,该调用需要用户按Enter才能终止输入(如果有)。

name_of_file=input("result.txt")

如果用户仅按Enter键,则name_of_file将为空字符串。 但是,由于此用户输入用于构造可写文件的路径,因此您应注意此条目,因为用户可能会键入一些意外内容,例如../ ,然后结果输出文件将为C:/Users/HP/Documents/../result.txt ,可能会无意间(或有意地)覆盖其他文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM