繁体   English   中英

我们如何使用 python 从变量写入文本文件?

[英]How can we write a text file from variable using python?

我正在研究 NLP 项目,并使用 PyPDF2 从 pdf 中提取了文本。 此外,我删除了空白行。 现在,我的 output 正在控制台上显示,但我想用存储在我的变量(文件)中的相同数据填充文本文件。

下面是从文本文件中删除空行的代码。

for line in open('resume1.txt'):
  line = line.rstrip()
  if line != '':
    file=line
    print(file)

Output on Console: Eclipse, Visual Studio 2012, Arduino IDE, Java, HTML, CSS 2013 Excel.

现在,我想要在我的 (resume1.txt) 文本文件中使用相同的数据。 我使用了三种方法,但所有这些方法都会在我的 resume1.txt 文件中打印一个点。 如果我在文本文件的末尾看到,那么有一个正在打印的点。

方法一:

with open("resume1.txt", "w") as out_file:
    out_file.write(file)

方法二:

print(file,  file=open("resume1.txt", 'w'))

方法三:

pathlib.Path('resume1.txt').write_text(file)

能否请您帮助我填充文本文件。 谢谢您的合作。

首先,请注意您正在写入丢失旧数据的同一个文件,我不知道您是否要这样做。 除此之外,每次使用这些方法写入时,都会覆盖之前写入 output 文件的数据。 所以,如果你想使用这些方法,你必须只写1次(写所有数据)。

解决方案

使用方法一:

to_file = []

for line in open('resume1.txt'):
    line = line.rstrip()
    if line != '':
        file = line
        print(file)
        to_file.append(file)

to_save = '\n'.join(to_file)

with open("resume1.txt", "w") as out_file:
    out_file.write(to_save)

使用方法二:

to_file = []

for line in open('resume1.txt'):
    line = line.rstrip()
    if line != '':
        file = line
        print(file)
        to_file.append(file)

to_save = '\n'.join(to_file)

print(to_save, file=open("resume1.txt", 'w'))

使用方法三:

import pathlib

to_file = []

for line in open('resume1.txt'):
    line = line.rstrip()
    if line != '':
        file = line
        print(file)
        to_file.append(file)

to_save = '\n'.join(to_file)

pathlib.Path('resume1.txt').write_text(to_save)

在这 3 种方法中,我使用to_save = '\n'.join(to_file)因为我假设你想用 EOL 分隔每一行,但如果我错了,你可以只使用''.join(to_file)如果你不想要空格,或者' '.join(to_file)如果你想要所有的行都在一个单一的。

其他方法

你可以通过使用其他文件来做到这一点,比如说'output.txt'。

out_file = open('output.txt', 'w')

for line in open('resume1.txt'):
    line = line.rstrip()
    if line != '':
        file = line
        print(file)
        out_file.write(file)
        out_file.write('\n') # EOL

out_file.close()

另外,你可以这样做(我更喜欢这个):

with open('output.txt', 'w') as out_file:
    for line in open('resume1.txt'):
        line = line.rstrip()
        if line != '':
            file = line
            print(file)
            out_file.write(file)
            out_file.write('\n') # EOL

堆栈上的第一篇文章,请原谅格式

new_line = ""

for line in open('resume1.txt', "r"):
    for char in line:
        if char != " ":
            new_line += char
print(new_line)



with open('resume1.txt', "w") as f:
    f.write(new_line)

暂无
暂无

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

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