【发布时间】:2020-11-08 14:39:28
【问题描述】:
我有一堆具有下一种格式的文本文件
word(1) num(1,1) num(1,2) num(1,3) ... num(1,300)
word(2) num(2,1) num(2,2) num(2,3) ... num(2,300)
word(3) num(3,1) num(3,2) num(3,3) ... num(3,300)
...
word(n) num(n,1) num(n,2) num(n,3) ... num(n,300)
文件的名称是 palabrasX.txt,其中 X 是一个数字,表示在文件中构成单词的字符串的长度(从 1 到 32),例如,如果单词是“cat”那么应该在 palabras3.txt 里面
那么真正的问题是其中一些文件太大而无法通过正常方式打开,我想制作一个包含这些文件所有信息的大文件,所以我会先拥有所有带有1个字符的单词然后所有带 2 的单词,依此类推,直到 32
我正在尝试这样的事情:
# encoding: utf-8
filenames = {}
for i in range(32):
filenames[i]="palabras"+str(i+1)+".txt"
with open("VectoresPalabrasEspañol\TodasMisPalabras.txt", "w") as outfile:
for fname in filenames:
with open(fname) as infile:
for line in infile:
outfile.write(line)
但它仍处于工作状态,所以我不确定我的逻辑是否有问题,或者我是否触发了无限循环或其他原因。
顺便说一下,完整文件的路径是:
"VectoresPalabrasEspañol\TodasMisPalabras.txt"
palabraX.txt 的路径是:
f"palabras\Probables palabras\palabras{length}.txt"
【问题讨论】:
-
文件太大而无法通过正常方式打开,:阅读sqlite3 — DB-API 2.0 interface for SQLite databases,它允许
SELECT * WHERE word_len = x、x在范围1 - 32。 -
如果我触发了无限循环或其他原因:在
for fname in ...之后添加一个print(fname),看看你会得到什么。跨度> -
for fname in prints "palabras1.txt","palabras2.txt",依此类推直到 32
-
在尝试了@safiqulislam 给出的答案中的代码后,我意识到真正的问题是
filenames[i]应该有文件完整路径的字符串,而不仅仅是文件名文件 -
打印“palabras1.txt”、“palabras2.txt”等直到32:这不可能!你会得到
dictkey 值,即:0 0 1 0 1 2 0 ....
标签: python python-3.x file text