python在文件上迭代并附加到txt
我试图迭代文件夹中的文件,但代码总是只在一个文件上执行(此时有两个文件)。程序应该打开txt文件,将其转换为Python列表,并将列表写入新创建的文件(每个单独)。我一个人找不到那只虫子python在文件上迭代并附加到txt,python,Python,我试图迭代文件夹中的文件,但代码总是只在一个文件上执行(此时有两个文件)。程序应该打开txt文件,将其转换为Python列表,并将列表写入新创建的文件(每个单独)。我一个人找不到那只虫子 import io import os '''printing program directory''' ANVCONDA_directory = os.path.dirname(os.path.realpath(__file__)) + os.sep print ANVCONDA_directory
import io
import os
'''printing program directory'''
ANVCONDA_directory = os.path.dirname(os.path.realpath(__file__)) + os.sep
print ANVCONDA_directory
inputdir = ANVCONDA_directory + "TEMP"
print os.listdir(inputdir)
'''counting files in folder'''
path, dirs, files = os.walk(inputdir).next()
file_count = len(files)
print file_count
for filename in os.listdir(inputdir):
#opening txt file to extract data
with io.open(inputdir + "\\" + filename, "r", encoding="cp1250") as file:
ocr_results = [line.strip() for line in file]
#spliting into list
for line in ocr_results:
print("[" + line + "]")
#writing list to file
import pickle
with open('outfile' + filename, 'wb') as fp:
pickle.dump(ocr_results, fp)
您正在编写输出的代码块的缩进似乎是错误的。它应该在for循环中。由于它当前在循环之外,因此仅在上述循环结束后执行
我想提到的另一点是os.listdir包含文件夹中的所有内容,包括子目录。如果您想跳过目录,也许应该查看os.isdir检查缩进<打开('outfile'+文件名,'wb')为fp:的代码>不在os.listdir(inputdir)文件名的
范围内:
此外,请尝试保持缩进一致。1.导入pickle
位于模块顶部。2.)你应该与你的缩进水平保持一致。确保在所有位置使用4个空格/1个选项卡。我发现了一些不一致的地方。谢谢你,我解决了这个问题