我正在使用Notepad ++重组一些数据。每个.txt文件有99行。我正在尝试运行python脚本来创建99个单行文件。
这是我目前正在运行的.py脚本,我在该主题的前一个主题中找到了该脚本。我不确定为什么,但它并没有完成这项工作:
yourfile = open('filename.TXT', 'r')
counter = 0
magic = yourfile.readlines()
for i in magic:
counter += 1
newfile = open(('filename_' + str(counter) + '.TXT'), "w")
newfile.write(i)
newfile.close()
当我运行这个特定的脚本时,它只是创建了一个主机文件的副本,它仍然有99行。
答案 0 :(得分:2)
您可能想稍微更改脚本的结构:
with open('filename.txt', 'r') as f:
for i, line in enumerate(f):
with open('filename_{}.txt'.format(i), 'w') as wf:
wf.write(line)
在这种格式中,您可以依靠上下文管理器来关闭文件处理程序,而且您不必单独阅读,有更好的逻辑流程。
答案 1 :(得分:1)
您可以使用以下代码来实现这一目标。它评论过,但随意问。
#reading info from infile with 99 lines
infile = 'filename.txt'
#using context handler to open infile and readlines
with open(infile, 'r') as f:
lines = f.readlines()
#initializing counter
counter = 0
#for each line, create a new file and write line to it.
for line in lines:
#define outfile name
outfile = 'filename_' + str(counter) + '.txt'
#create outfile and write line
with open(outfile, 'w') as g:
g.write(line)
#add +1 to counter
counter += 1
答案 2 :(得分:0)
magic = yourfile.readlines(99)
请尝试删除' 99'像这样。
magic = yourfile.readlines()
我试过了,我有99个文件,每个文件只有一行。