簡體   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