如何删除空白行?

时间:2020-05-19 14:01:37

标签: python

所以基本上,我正在制作一个密码存储应用程序,但是当我记下用户输入的密码时,python创建了一个空行,这破坏了我的程序。 Heres a picture of it 因此,我需要使程序以某种方式删除第二行,但是我不知道该怎么做。

我需要帮助的部分:

randompasswords = open("randomizedpsw.txt", "r")
choserandomnumber = random.randint(1, 39)
randomizedpassword = randompasswords.readlines()[choserandomnumber]
loginpsw = open('loginpsw.txt', 'w')
loginpsw.write(randomizedpassword)
loginpsw.close()

因此,loginpsw.txt是一个带有另一行的行。这就是我需要以某种方式删除的内容。 Here's a picture of the random password possibilities

2 个答案:

答案 0 :(得分:0)

这是因为readlines()添加了换行符。您可以选择使用rstrip(),例如:

with open('loginpsw.txt', 'w') as loginpsw: # automatically close file when done 
    loginpsw.write(randomizedpassword.rstrip('\n')) # strips last new line char

重要的安全说明 随机库不是不是密码安全的,请改为使用secrets库。

答案 1 :(得分:0)

.readlines()方法返回一个列表,其中包含文件中的每一行作为列表项。

如果将大小指定为方法的参数,它将读取文件,直到达到指定的字节大小为止。

现在,您在代码的第三行中读取的文件具有某个随机的int值,将返回由\n分隔的那个字节。

所以

的值

randomizedpassword = randompasswords.readlines()[choserandomnumber]

看起来像["content of line 1\n", "content of line 2\n"]

因此,当您读取文件内容并将其存储在变量中时,就会出现\n的问题。稍后将相同的内容写入文件。

这是您可以得到想要的东西的方法,请尝试以下方法:

randompasswords = open("randomizedpsw.txt", "r")
choserandomnumber = random.randint(1, 39)
randomizedpassword = randompasswords.readlines()[choserandomnumber]

randomizedpassword = [line.rstrip('\n') for line in randomizedpassword]   #if you have fetched multiple lines while reading lines, it will remove \n from all values.

loginpsw = open('loginpsw.txt', 'w')
loginpsw.write(randomizedpassword)
loginpsw.close()

您几乎看不到.readlines(size)方法返回什么值的示例。 https://www.tutorialspoint.com/python/file_readlines.htm