使用 python 线程打开多个文件
Opening several files with python threading
我有几个文件想同时打开并从中提取数据并将它们分别写入各自的文件中。我目前正在做这样的事情:
files = os.listdir(FilePath)
for file in files:
with open(os.path.join(FilePath, file), 'r') as LFILE:
LFILE.read()
我是否需要了解如何读取所有文件,将文件放入列表,然后让每个线程读取列表并在读取后删除文件?或者有没有更好的方法来打开文件而不是多次读取同一个文件?
我没有在评论中要求进一步澄清的声誉,但如果您没有以需要跨文件共享信息的方式聚合数据,我只会映射列表文件到池中,如下所示:
def analyze_file(filename: str):
with open(filename, 'r') as LFILE:
# analyze the file how you'd like
# store results in a string
with open(filename + 'analyzed.txt', 'w') as result_fh:
result_fh.write(results)
if __name__ == "__main__":
with multiprocessing.Pool(4) as p:
p.map(
analyze_file,
[os.path.join(FilePath, file) for file in os.listdir(FilePath)]
)
我有几个文件想同时打开并从中提取数据并将它们分别写入各自的文件中。我目前正在做这样的事情:
files = os.listdir(FilePath)
for file in files:
with open(os.path.join(FilePath, file), 'r') as LFILE:
LFILE.read()
我是否需要了解如何读取所有文件,将文件放入列表,然后让每个线程读取列表并在读取后删除文件?或者有没有更好的方法来打开文件而不是多次读取同一个文件?
我没有在评论中要求进一步澄清的声誉,但如果您没有以需要跨文件共享信息的方式聚合数据,我只会映射列表文件到池中,如下所示:
def analyze_file(filename: str):
with open(filename, 'r') as LFILE:
# analyze the file how you'd like
# store results in a string
with open(filename + 'analyzed.txt', 'w') as result_fh:
result_fh.write(results)
if __name__ == "__main__":
with multiprocessing.Pool(4) as p:
p.map(
analyze_file,
[os.path.join(FilePath, file) for file in os.listdir(FilePath)]
)