如何打开多个目录并读取里面的文件
How to open multiple directories and read the files inside
我需要将文本文件与其他两个文件进行比较,然后将结果作为输出。因此,我自学了足够的知识来编写以下脚本,该脚本可以正常工作并比较特定目录中的所有文件,但是我有多个目录,其中包含文本文件。我需要的是比较所有目录中的所有文本文件,并为每个目录创建一个输出文件。有没有办法改进下面的代码来做到这一点:
import glob
import os
import sys
sys.stdout = open("citation.txt", "w")
for filename in glob.glob('journal*.txt'):
f1 = open(filename,'r')
f1data = f1.readlines()
f2 = open('chem.txt')
f2data = f2.readlines()
f3 = open('bio.txt')
f3data = f3.readlines()
chem = 0
bio = 0
total = 0
for line1 in f1data:
i = 0
for line2 in f2data:
if line1 in line2:
i+=1
total+=1
chem+=1
if i > 0:
print 'chem ' + line1 + "\n"
for line3 in f3data:
if line1 in line3:
i+=1
total+=1
bio+=1
if i > 0:
print 'bio ' + line1 + "\n"
print filename
print total
print 'bio ' + str(bio)
print 'chem ' + str(kimya)
提前致谢!
只需使用目录列表和 for 循环
directories = ['folder1','folder2',...]
for i,folder in enumerate(directories):
sys.stdout = open("citation{}.txt".format(i), "w")
...
[put the rest of your code here]
这会将不同的输出文件命名为 citation0.txt
,但您可以根据需要使用其他格式,只需更改该名称的声明方式即可。
如果您希望每个 citation.txt
进入实际目录,只需将您的代码更改为:
for folder in directories:
citation = os.path.join(folder, "citation.txt")
sys.stdout = open(citation, "w")
这将为一个新的 citation.txt
文件创建一个路径,其中包含循环运行时的每个目录。确保 import os
在文件的开头,如果你还没有的话。
我需要将文本文件与其他两个文件进行比较,然后将结果作为输出。因此,我自学了足够的知识来编写以下脚本,该脚本可以正常工作并比较特定目录中的所有文件,但是我有多个目录,其中包含文本文件。我需要的是比较所有目录中的所有文本文件,并为每个目录创建一个输出文件。有没有办法改进下面的代码来做到这一点:
import glob
import os
import sys
sys.stdout = open("citation.txt", "w")
for filename in glob.glob('journal*.txt'):
f1 = open(filename,'r')
f1data = f1.readlines()
f2 = open('chem.txt')
f2data = f2.readlines()
f3 = open('bio.txt')
f3data = f3.readlines()
chem = 0
bio = 0
total = 0
for line1 in f1data:
i = 0
for line2 in f2data:
if line1 in line2:
i+=1
total+=1
chem+=1
if i > 0:
print 'chem ' + line1 + "\n"
for line3 in f3data:
if line1 in line3:
i+=1
total+=1
bio+=1
if i > 0:
print 'bio ' + line1 + "\n"
print filename
print total
print 'bio ' + str(bio)
print 'chem ' + str(kimya)
提前致谢!
只需使用目录列表和 for 循环
directories = ['folder1','folder2',...]
for i,folder in enumerate(directories):
sys.stdout = open("citation{}.txt".format(i), "w")
...
[put the rest of your code here]
这会将不同的输出文件命名为 citation0.txt
,但您可以根据需要使用其他格式,只需更改该名称的声明方式即可。
如果您希望每个 citation.txt
进入实际目录,只需将您的代码更改为:
for folder in directories:
citation = os.path.join(folder, "citation.txt")
sys.stdout = open(citation, "w")
这将为一个新的 citation.txt
文件创建一个路径,其中包含循环运行时的每个目录。确保 import os
在文件的开头,如果你还没有的话。