Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中的终端动态打印URL_Python_Python 3.x_Gnome Terminal - Fatal编程技术网

python中的终端动态打印URL

python中的终端动态打印URL,python,python-3.x,gnome-terminal,Python,Python 3.x,Gnome Terminal,我有一个包含URL的文件(google.com、microsoft.com等)。我想打印一个url,然后从中清除前一行。再次在上面写另一个url。代码示例如下: import sys with open('url.txt') as u: for line in u: line=line.strip() print(line, end="\r") #also tried sys.stdout.write("\r

我有一个包含URL的文件(google.com、microsoft.com等)。我想打印一个url,然后从中清除前一行。再次在上面写另一个url。代码示例如下:

import sys
with open('url.txt') as u:
    for line in u:
          line=line.strip()
          print(line, end="\r")
          #also tried
          sys.stdout.write("\r{0}".format(line))
          sys.stdout.flush()
上述代码不会删除所有以前的字符。 示例:“microsoft.com”后面的“google.com”将打印为“google.com.com”。 有人能告诉我如何完全删除前一行吗?

试试这个:

导入系统 导入时间 将open('url.txt')作为u: lastline=“” 对于计数,枚举中的行(u.readlines()): 如果计数!=0:#不要延迟输出的第一项 时间。睡眠(4)#4秒延迟,以便用户可以在下一个文本出现之前阅读 line=str(line).strip(“\n”) 打印(“”*(len(lastline)+1),end='\r')#清除最后一行 打印(行,结束='\r') 最后一行 在Windows10上测试

不过,光标将在开始时闪烁。要解决此问题,您可以通过
pip install cursor
安装游标模块,然后使用此稍加修改的代码:

导入系统 导入时间 导入光标 将open('url.txt')作为u: lastline=“” 对于计数,枚举中的行(u.readlines()): 如果计数!=0:#不要延迟输出的第一项 时间。睡眠(4)#4秒延迟,以便用户可以在下一个文本出现之前阅读 line=str(line).strip(“\n”) 打印(“”*(len(lastline)+1),end='\r')#清除最后一行 打印(行,结束='\r') 最后一行 cursor.hide() cursor.show()
如果您使用代码写入文件,则这不是该代码。在上面的代码段中,除了读取文件“url.txt”并将文本发送到stdout(通过print和sys.stdout.write/flush)之外,您什么都不做。如果要将此输出管道化到一个文件或类似文件中,则应包括在终端中输入的内容以及使用的python代码。@Evan感谢您的快速响应。我只想检查url的有效性,如果有效,只需在终端中打印这些url即可。@Evan你能告诉我,如果新行比前一行小,为什么这段代码不删除前一行吗?不清楚你在问什么。在您最初的问题中,您说“我想打印一个url并删除该url,然后在其上方写入另一个url”,这似乎表明您想编辑一个文件,但现在您说您想“检查url的有效性,如果有效,只需在终端中打印这些url”。你应该编辑你的问题,明确你想要完成什么。“删除”是什么意思?你说的“有效”是什么意思?你可能想看看我认为你的ans与我的问题更相似。如果URL从小到大,则此代码可以完美地工作。我的意思是1.com10.com100.com,但是如果你有大到小的尺寸,它会从以前的url中提供一些额外的输出。在microsoft.com之后,google.com将成为google.com.com。这似乎很奇怪,我会测试一下more@AnirbanSingha好的,我编辑过了,现在效果很好。我的badsys.stdout.write(“\r033[K{0}”)。格式(行)将是最好的。您对此有何看法。