import os
rootdir = 'D:/works/文本分析/leopythonbookdata-master/texts/'
allfiles =[]for root,subFolder,files in os.walk(rootdir):for file in files:
allfiles.append(os.path.join(root,file))for i in allfiles:if i.endswith('.txt'):print(i)
上面代码的第一二行,我们首先通过import os 引入os模块,然后定义语料库所有的文件夹(rootdir = ‘D:/works/文本分析/leopythonbookdata-master/texts/’)。第三行,我们定义一个空列表allfiles,用以储存所有带有绝对路径的文件名。第四行,我们循环遍历rootdir文件夹中的根目录(root)、子目录(subFolders)和根目录下所有带有绝对路径的文件名(files)。其中,最重要的是files,它是一个列表,包含所有根目录下(含子文件夹)带有绝对路径的文件名。读者可以在该循环中加如下三行代码,打印出root,subFolders,files的内容,以更深入了解它们的内容。代码如下:
for root,subFolder,files in os.walk(rootdir):
# print('root:',root)
# print('subFolders:',subFolder)
# print('files:',files,'\n')
我们可以将上面的代码进行修改,读取每个文件,并将它们合并到一个文本中。请看下面的代码。
import os
rootdir = 'D:/works/文本分析/leopythonbookdata-master/texts/'
allfiles =[]
file_out =open(rootdir + 'allfiles_combined.txt','a',encoding='utf8')for root,subFolder,files in os.walk(rootdir):for file in files:
allfiles.append(os.path.join(root,file))for i in allfiles:if i.endswith('.txt'):
file_in =open(i,'r',encoding='ISO-8859-1')for line in file_in.readlines():
file_out.write(line)
file_in.close()
file_out.close()
import os
target_dir = 'D:/works/文本分析/leopythonbookdata-master/texts/temp_folder/'
files = os.listdir(target_dir)for file in files:if file.endswith(".txt"):
# open the txt file
file_in =open(target_dir + file,'r',encoding='ISO-8859-1')
text = file_in.readlines()
# open the new txt file with file name changed
file_out =open(target_dir + file[:-4]+"_changed.txt",'a')for t in text:
file_out.write(t)
file_in.close()
file_out.close()