Hướng dẫn how do i save multiple files in a directory in python? - làm cách nào để lưu nhiều tệp trong một thư mục trong python?

Vì vậy, tôi đã viết SRIPT này, lấy các đối số dòng lệnh và tạo hình ảnh dựa trên chúng (bây giờ chỉ có một đối số), nó hoạt động tốt cho đến khi nó đến chức năng lưu, tôi không biết tại sao nhưng nó chỉ cần hình ảnh cuối cùng và lưu nó 10 lần thay vì lưu mọi hình ảnh

Đây là mã;

import os, argparse
from PIL import Image as image
from PIL import ImageDraw as image_draw
from PIL import ImageFont as image_font

parser = argparse.ArgumentParser(description='Image generator')

#Argument definition

parser.add_argument('-num', action='store_true', required=False, help='Generates numbers')

numbers = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']

args = parser.parse_args()

arg_num = args.num

def img_gen(n, lenght):
    text = n

    fnts = 20

    fnt = image_font.truetype('Roboto.ttf', size=fnts, index=0, encoding='', layout_engine=None)
    gen_i_width = (6 * fnts)
    gen_i_height = (3 * fnts)

    gen_img = image.new('RGBA', (gen_i_width, gen_i_height), color=(0, 0, 0, 255))

    gen_text = image_draw.Draw(gen_img)
    gen_text.text((0,0), text, font=fnt, fill=(255, 255, 255, 255))
    text_size = gen_text.textsize(text, font=fnt, spacing=0, direction=None, features=None)

    text_s_list = list(text_size)
    text_width, text_height = text_s_list

    img_c = gen_img.crop((0, 0, text_width, text_height))

    for file_name in range(1, lenght + 1):
        img_c.save(f"{file_name:04d}.png")

def main():
    if arg_num == True:
        lenght = len(numbers)
        for n in numbers:
            img_gen(n, lenght)

if __name__ == '__main__':
    main()

Tổng quan

Giảng dạy: 25 phút Bài tập: 10 phút 25 min
Exercises: 10 min

Câu hỏi

  • Làm cách nào để phân tích nhiều tệp cùng một lúc?

Mục tiêu

  • Nhập thư viện Python.

  • Sử dụng các chức năng thư viện Python.

  • Xử lý nhiều tệp bằng cách sử dụng vòng lặp

    outfile_directory = os.path.join('data', 'outfiles')
    
    4.

  • In đầu ra vào một tệp văn bản mới.

Xử lý nhiều tập tin

Trong bài học trước của chúng tôi, chúng tôi đã phân tích các giá trị từ các tệp đầu ra. Mặc dù bạn có thể đã thấy tiện ích của việc làm như vậy, nhưng bạn cũng có thể tự hỏi tại sao chúng tôi không chỉ tìm kiếm tệp và cắt và dán các giá trị mà chúng tôi muốn vào một bảng tính. Nếu bạn chỉ có 1 hoặc 2 tệp, đây có thể là một điều rất hợp lý để làm. Nhưng nếu bạn có 100 tệp để phân tích? Nếu bạn có 1000 thì sao? Trong trường hợp như vậy, phương pháp cắt và dán sẽ rất tẻ nhạt và tốn thời gian.

Một trong những quyền hạn thực của việc viết một chương trình để phân tích dữ liệu của bạn là bạn có thể dễ dàng phân tích 100 tệp như 1 tệp. Trong ví dụ này, chúng tôi sẽ phân tích các tệp đầu ra cho toàn bộ một loạt các hợp chất rượu aliphatic và phân tích giá trị năng lượng cho mỗi loại. Tất cả các tệp đầu ra đều được lưu trong một thư mục có tên là Dà trang mà bạn nên tải xuống trong thiết lập cho bài học này. Hãy chắc chắn rằng thư mục nằm trong cùng thư mục với thư mục nơi bạn đang viết và thực thi mã của mình.

Để phân tích nhiều tệp, chúng tôi sẽ cần nhập thư viện Python. Thư viện là một tập hợp các mô -đun có chứa các chức năng. Các chức năng trong thư viện hoặc mô -đun thường liên quan đến nhau. Sử dụng các thư viện và trong Python làm giảm số lượng mã bạn phải viết. Trong bài học cuối cùng, chúng tôi đã nhập

outfile_directory = os.path.join('data', 'outfiles')
5, đó là một mô -đun xử lý các filepaths cho chúng tôi.library. A library is a set of modules which contain functions. The functions within a library or module are usually related to one another. Using libraries and in Python reduces the amount of code you have to write. In the last lesson, we imported
outfile_directory = os.path.join('data', 'outfiles')
5, which was a module that handled filepaths for us.

Trong bài học này, chúng tôi sẽ sử dụng thư viện

outfile_directory = os.path.join('data', 'outfiles')
6, điều này sẽ giúp chúng tôi đọc trong nhiều tệp từ máy tính của chúng tôi. Trong một thư viện có các mô -đun và chức năng thực hiện một nhiệm vụ tính toán cụ thể. Thông thường một chức năng có một số loại đầu vào và cung cấp một đầu ra cụ thể. Để sử dụng một hàm trong thư viện, bạn thường sử dụng ký hiệu dấu chấm được giới thiệu trong bài học trước. Nói chung

import library_name
output = library_name.funtion_name(input)

Chúng tôi sẽ nhập hai thư viện. Một là thư viện

outfile_directory = os.path.join('data', 'outfiles')
7 kiểm soát các chức năng liên quan đến hệ điều hành của máy tính của bạn. Chúng tôi đã sử dụng thư viện này trong bài học cuối cùng để xử lý FilePaths. Cái còn lại là thư viện
outfile_directory = os.path.join('data', 'outfiles')
6 chứa các chức năng giúp chúng tôi phân tích nhiều tệp. Nếu chúng ta sẽ phân tích nhiều tệp, trước tiên chúng ta cần chỉ định vị trí của các tệp đó.

Tập thể dục

Làm thế nào bạn sẽ sử dụng mô -đun

outfile_directory = os.path.join('data', 'outfiles')
5 để trỏ đến thư mục nơi trang phục của bạn?

Dung dịch

outfile_directory = os.path.join('data', 'outfiles')

Để có được tất cả các tệp phù hợp với một mẫu cụ thể, chúng tôi sẽ sử dụng ký tự đại diện

file_location = os.path.join('data', 'outfiles', '*.out')
print(file_location)
0.

file_location = os.path.join('data', 'outfiles', '*.out')
print(file_location)

Điều này chỉ định rằng chúng tôi muốn tìm kiếm tất cả các tệp trong một thư mục có tên là

file_location = os.path.join('data', 'outfiles', '*.out')
print(file_location)
1 kết thúc bằng cách .Out. * Là ký tự đại diện phù hợp với bất kỳ ký tự nào.

Tiếp theo chúng ta sẽ sử dụng một hàm gọi là

outfile_directory = os.path.join('data', 'outfiles')
6 trong thư viện có tên là
outfile_directory = os.path.join('data', 'outfiles')
6. Đó là một chút khó hiểu vì hàm và thư viện có cùng tên, nhưng chúng ta sẽ thấy các ví dụ khác mà đây không phải là trường hợp sau này. Đầu ra của hàm
outfile_directory = os.path.join('data', 'outfiles')
6 là danh sách tất cả các tên tệp phù hợp với mẫu được chỉ định trong đầu vào. Đầu vào là vị trí tệp.

import glob
filenames = glob.glob(file_location)
print(filenames)

['data/outfiles/butanol.out', 'data/outfiles/decanol.out', 'data/outfiles/ethanol.out', 'data/outfiles/heptanol.out', 'data/outfiles/hexanol.out', 'data/outfiles/methanol.out', 'data/outfiles/nonanol.out', 'data/outfiles/octanol.out', 'data/outfiles/pentanol.out', 'data/outfiles/propanol.out']

Điều này sẽ cung cấp cho chúng tôi một danh sách tất cả các tệp kết thúc trong

file_location = os.path.join('data', 'outfiles', '*.out')
print(file_location)
5 trong thư mục
file_location = os.path.join('data', 'outfiles', '*.out')
print(file_location)
6. Bây giờ nếu chúng ta muốn phân tích mọi tệp chúng ta vừa đọc, chúng ta sẽ sử dụng vòng lặp
outfile_directory = os.path.join('data', 'outfiles')
4 để đi qua mỗi tệp.

for f in filenames:
    outfile = open(f,'r')
    data = outfile.readlines()
    outfile.close()
    for line in data:
        if 'Final Energy' in line:
            energy_line = line
            words = energy_line.split()
            energy = float(words[3])
            print(energy)

-232.1655798347283
-466.3836241400086
-154.09130176573018
-349.27397687072676
-310.2385332251633
-115.04800861868374
-427.3465180082815
-388.3110864554743
-271.20138119895074
-193.12836249728798

Lưu ý rằng trong mã này, chúng tôi thực sự đã sử dụng hai vòng

outfile_directory = os.path.join('data', 'outfiles')
4, một vòng khác nhau bên trong cái kia. Vòng lặp
outfile_directory = os.path.join('data', 'outfiles')
4 bên ngoài được tính trên các tên tệp chúng ta đọc trước đó. Vòng lặp
outfile_directory = os.path.join('data', 'outfiles')
4 bên trong được tính trên dòng trong mỗi tệp, giống như chúng tôi đã làm trong bài học phân tích tệp trước đây của chúng tôi.

Đầu ra Mã của chúng tôi hiện đang tạo ra không hữu ích. Nó không cho chúng ta thấy tệp mà mỗi giá trị năng lượng đến từ đó.

Chúng tôi muốn in tên của phân tử với năng lượng. Chúng ta có thể sử dụng

import glob
filenames = glob.glob(file_location)
print(filenames)
1, đây là một chức năng khác trong
outfile_directory = os.path.join('data', 'outfiles')
5 để chỉ nhận tên của tệp.

first_file = filenames[0]
print(first_file)

file_name = os.path.basename(first_file)
print(file_name)

data/outfiles/propanol.out
propanol.out

Tập thể dục

Làm thế nào bạn sẽ trích xuất tên phân tử từ ví dụ trên?

Dung dịch

Bạn có thể sử dụng chức năng

import glob
filenames = glob.glob(file_location)
print(filenames)
3 được giới thiệu trong bài học cuối cùng và phân chia theo ký tự ‘..

import library_name
output = library_name.funtion_name(input)
0

Sử dụng giải pháp ở trên, chúng tôi có thể sửa đổi vòng lặp của chúng tôi để nó in tên tệp cùng với mỗi giá trị năng lượng.

import library_name
output = library_name.funtion_name(input)
1

import library_name
output = library_name.funtion_name(input)
2

In vào một tệp

Cuối cùng, có thể hữu ích khi in kết quả của chúng tôi trong một tệp mới, do đó chúng tôi có thể chia sẻ kết quả của mình với các đồng nghiệp hoặc gửi email cho cố vấn của chúng tôi. Giống như khi chúng tôi đọc trong một tệp, bước đầu tiên để viết đầu ra vào tệp là mở tệp đó để viết. Nói chung để mở một tệp để viết bạn sử dụng cú pháp

import library_name
output = library_name.funtion_name(input)
3

import glob
filenames = glob.glob(file_location)
print(filenames)
4 có nghĩa là mở tệp để viết. Nếu bạn sử dụng
import glob
filenames = glob.glob(file_location)
print(filenames)
5 có nghĩa là mở tệp để viết và nếu tệp không tồn tại, hãy tạo nó. Bạn cũng có thể sử dụng
import glob
filenames = glob.glob(file_location)
print(filenames)
6 để nối vào tệp hiện có hoặc
import glob
filenames = glob.glob(file_location)
print(filenames)
7. Sự khác biệt giữa
import glob
filenames = glob.glob(file_location)
print(filenames)
5 và
import glob
filenames = glob.glob(file_location)
print(filenames)
7 là
import glob
filenames = glob.glob(file_location)
print(filenames)
5 sẽ ghi đè lên tệp nếu nó đã tồn tại, trong khi
import glob
filenames = glob.glob(file_location)
print(filenames)
7 sẽ giữ những gì đã có và chỉ thêm văn bản bổ sung vào tệp.

Python chỉ có thể viết chuỗi vào các tập tin. Tuyên bố in hiện tại của chúng tôi không phải là một chuỗi; Nó in hai biến Python. Để chuyển đổi những gì chúng ta có bây giờ thành một chuỗi, bạn đặt một vốn F trước dòng bạn muốn in và gửi nó trong các trích dẫn đơn. Mỗi biến python được đặt trong niềng răng. Sau đó, bạn có thể in dòng (như chúng tôi đã làm trước đây) hoặc bạn có thể sử dụng lệnh

['data/outfiles/butanol.out', 'data/outfiles/decanol.out', 'data/outfiles/ethanol.out', 'data/outfiles/heptanol.out', 'data/outfiles/hexanol.out', 'data/outfiles/methanol.out', 'data/outfiles/nonanol.out', 'data/outfiles/octanol.out', 'data/outfiles/pentanol.out', 'data/outfiles/propanol.out']
2 để in nó vào một tệp.F in front of the line you want to print and enclose it in single quotes. Each python variable is placed in braces. Then you can either print the line (as we have done before) or you can use the
['data/outfiles/butanol.out', 'data/outfiles/decanol.out', 'data/outfiles/ethanol.out', 'data/outfiles/heptanol.out', 'data/outfiles/hexanol.out', 'data/outfiles/methanol.out', 'data/outfiles/nonanol.out', 'data/outfiles/octanol.out', 'data/outfiles/pentanol.out', 'data/outfiles/propanol.out']
2 command to print it to a file.

Để làm gọn gàng hơn, chúng tôi sẽ tách tên tệp khỏi năng lượng bằng một tab. Để chèn một tab, chúng tôi sử dụng ký tự đặc biệt

['data/outfiles/butanol.out', 'data/outfiles/decanol.out', 'data/outfiles/ethanol.out', 'data/outfiles/heptanol.out', 'data/outfiles/hexanol.out', 'data/outfiles/methanol.out', 'data/outfiles/nonanol.out', 'data/outfiles/octanol.out', 'data/outfiles/pentanol.out', 'data/outfiles/propanol.out']
3.

import library_name
output = library_name.funtion_name(input)
4

Sau khi bạn chạy lệnh này, hãy nhìn vào thư mục nơi bạn chạy mã của mình và tìm tệp Energies.txt.txt. Mở nó trong một trình soạn thảo văn bản và nhìn vào tệp.

Trong dòng viết tệp, hãy chú ý

['data/outfiles/butanol.out', 'data/outfiles/decanol.out', 'data/outfiles/ethanol.out', 'data/outfiles/heptanol.out', 'data/outfiles/hexanol.out', 'data/outfiles/methanol.out', 'data/outfiles/nonanol.out', 'data/outfiles/octanol.out', 'data/outfiles/pentanol.out', 'data/outfiles/propanol.out']
4 ở cuối dòng. Đây là nhân vật Newline. Không có nó, văn bản trong tập tin của chúng tôi sẽ được kết hợp với nhau trên một dòng. Ngoài ra, lệnh
['data/outfiles/butanol.out', 'data/outfiles/decanol.out', 'data/outfiles/ethanol.out', 'data/outfiles/heptanol.out', 'data/outfiles/hexanol.out', 'data/outfiles/methanol.out', 'data/outfiles/nonanol.out', 'data/outfiles/octanol.out', 'data/outfiles/pentanol.out', 'data/outfiles/propanol.out']
5 là rất quan trọng. Hãy nghĩ về một máy tính như một người có trí nhớ rất tốt, nhưng rất chậm trong việc viết. Do đó, khi bạn bảo máy tính viết một dòng, nó nhớ những gì bạn muốn nó viết, nhưng nó thực sự không viết tệp mới cho đến khi bạn nói với nó rằng bạn đã hoàn thành. Lệnh
['data/outfiles/butanol.out', 'data/outfiles/decanol.out', 'data/outfiles/ethanol.out', 'data/outfiles/heptanol.out', 'data/outfiles/hexanol.out', 'data/outfiles/methanol.out', 'data/outfiles/nonanol.out', 'data/outfiles/octanol.out', 'data/outfiles/pentanol.out', 'data/outfiles/propanol.out']
6 cho máy tính nói rằng bạn đã hoàn thành việc viết nó và nó sẽ tiếp tục và viết tệp ngay bây giờ. Nếu bạn đang cố gắng viết một tệp và tệp tiếp tục trống, có lẽ là do bạn quên đóng tệp.

Một ghi chú cuối cùng về định dạng chuỗi

Ký hiệu F hèString mà bạn có thể sử dụng với bản in hoặc lệnh ghi cho phép bạn định dạng chuỗi theo nhiều cách. Bạn có thể bao gồm các từ khác hoặc toàn bộ câu. Ví dụ: chúng tôi có thể thay đổi dòng ghi tệp thành

import library_name
output = library_name.funtion_name(input)
5

trong đó bất cứ thứ gì trong niềng răng là một biến python và nó sẽ in giá trị của biến đó.

Chuyển nhượng dự án

Đây là một nhiệm vụ dự án mà bạn có thể hoàn thành để kiểm tra các kỹ năng của mình. Dự án này nên được sử dụng khi tài liệu này được sử dụng trong một hội thảo dài, hoặc nếu bạn đang làm việc thông qua tài liệu này một cách độc lập.

Tập tin phân tích cú pháp bài tập về nhà

Trong các tài liệu bài học, có một tập tin gọi là

['data/outfiles/butanol.out', 'data/outfiles/decanol.out', 'data/outfiles/ethanol.out', 'data/outfiles/heptanol.out', 'data/outfiles/hexanol.out', 'data/outfiles/methanol.out', 'data/outfiles/nonanol.out', 'data/outfiles/octanol.out', 'data/outfiles/pentanol.out', 'data/outfiles/propanol.out']
7. Đây là một đầu ra tệp của chương trình mô phỏng động lực phân tử Amber.

Nếu bạn mở tệp và xem nó, bạn sẽ thấy các phần trông giống như thế này:

import library_name
output = library_name.funtion_name(input)
6

Nhiệm vụ của bạn là phân tích tệp này và viết một tệp mới chứa danh sách> tổng năng lượng. Đặt tên cho tệp của bạn

['data/outfiles/butanol.out', 'data/outfiles/decanol.out', 'data/outfiles/ethanol.out', 'data/outfiles/heptanol.out', 'data/outfiles/hexanol.out', 'data/outfiles/methanol.out', 'data/outfiles/nonanol.out', 'data/outfiles/octanol.out', 'data/outfiles/pentanol.out', 'data/outfiles/propanol.out']
8. Khi bạn mở nó, nó sẽ trông như thế này:

import library_name
output = library_name.funtion_name(input)
7

['data/outfiles/butanol.out', 'data/outfiles/decanol.out', 'data/outfiles/ethanol.out', 'data/outfiles/heptanol.out', 'data/outfiles/hexanol.out', 'data/outfiles/methanol.out', 'data/outfiles/nonanol.out', 'data/outfiles/octanol.out', 'data/outfiles/pentanol.out', 'data/outfiles/propanol.out']
9 chỉ ra rằng bạn sẽ có nhiều hàng hơn. Chúng tôi chỉ hiển thị 10 đầu tiên ở đây.

Nếu bạn không chắc chắn nơi bắt đầu với nhiệm vụ này, hãy kiểm tra phần gợi ý!

Gợi ý

Nó giúp khi bạn viết mã để chia nhỏ những gì bạn phải làm thành các bước. Nhìn chung, chúng tôi muốn nhận thông tin từ tệp. làm sao chúng ta làm việc đó bây giờ?

Nếu bạn nghĩ về các bước bạn sẽ cần thực hiện nhiệm vụ này, bạn có thể đưa ra một danh sách như thế này, bạn có thể có một danh sách như

  1. Mở tệp để đọc
  2. Đọc dữ liệu trong tệp
  3. Vòng lặp qua các dòng trong tệp.
  4. Nhận thông tin từ dòng chúng tôi quan tâm.
  5. Viết thông tin vào một tập tin.

Nó có thể hữu ích khi bạn viết mã để viết ra các bước này và làm việc trên nó. Cố gắng viết mã bằng các bước này. Lưu ý rằng khi bạn viết mã, bạn có thể đưa ra các bước khác! Đầu tiên, điều về những gì bạn phải làm cho bước 1 và viết mã cho điều đó. Tiếp theo, hãy suy nghĩ về cách bạn sẽ làm Bước 2 và viết mã cho điều đó. Bạn có thể khắc phục sự cố mỗi bước bằng cách sử dụng các thống kê in. Các bước xây dựng lẫn nhau, vì vậy bạn có thể làm việc để có được từng tác phẩm được viết trước khi chuyển sang bước tiếp theo.

Dung dịch

Sau đây là một giải pháp tiềm năng, mặc dù bạn có thể đã đưa ra một giải pháp khác. Chỉ cần đảm bảo rằng tệp văn bản của bạn trông giống như giải pháp được đưa ra trong vấn đề Statememt.

Giải pháp này sẽ đi qua việc viết mã từng bước. Nếu bạn không muốn đi qua từng bước, chỉ cần bỏ qua đến cuối giải pháp.

Hãy để bắt đầu với các bước mà chúng tôi nghĩ đến trong gợi ý để viết mã này thành từng mảnh.

import library_name
output = library_name.funtion_name(input)
8

Đối với Phần một, bạn sẽ nhận ra rằng bạn cần xây dựng một đường dẫn tệp trước khi mở. Chúng tôi cũng biết rằng nếu chúng tôi mở một tập tin, chúng tôi sẽ cần phải đóng nó. Sau khi chúng tôi xây dựng một đường dẫn tệp và mở tệp, mã của chúng tôi sẽ trông như thế này.

import library_name
output = library_name.funtion_name(input)
9

Mã này sẽ không xuất hiện để làm bất cứ điều gì, nhưng nó xây dựng một filepath, mở một tệp, sau đó đóng tệp. Chạy nó sẽ cho phép chúng tôi xem liệu chúng tôi đã xây dựng chính xác FilePath của mình và để thấy rằng chúng tôi có thể mở và đóng tệp.

Bước thứ hai của chúng tôi là đọc dữ liệu trong tệp. Hãy nhớ lại rằng chúng tôi đã làm điều này sớm hơn với một chức năng gọi là

for f in filenames:
    outfile = open(f,'r')
    data = outfile.readlines()
    outfile.close()
    for line in data:
        if 'Final Energy' in line:
            energy_line = line
            words = energy_line.split()
            energy = float(words[3])
            print(energy)
0. Nhớ lại từ
for f in filenames:
    outfile = open(f,'r')
    data = outfile.readlines()
    outfile.close()
    for line in data:
        if 'Final Energy' in line:
            energy_line = line
            words = energy_line.split()
            energy = float(words[3])
            print(energy)
0 rằng tệp sẽ cần được mở để thực hiện việc này, vì vậy chúng tôi sẽ thêm điều này trước khi chúng tôi sử dụng lệnh
for f in filenames:
    outfile = open(f,'r')
    data = outfile.readlines()
    outfile.close()
    for line in data:
        if 'Final Energy' in line:
            energy_line = line
            words = energy_line.split()
            energy = float(words[3])
            print(energy)
2.

outfile_directory = os.path.join('data', 'outfiles')
0

Chúng tôi biết rằng các đường đọc cung cấp cho chúng tôi một danh sách trong đó mọi dòng là một yếu tố của một danh sách. Chúng ta cần lặp qua các dòng trong tệp và chúng ta sẽ làm điều này bằng cách sử dụng vòng lặp

outfile_directory = os.path.join('data', 'outfiles')
4.

Chúng tôi sẽ cần trích xuất thông tin từ các dòng, vì vậy hãy để Lôi đi trước và chia các dòng. Hãy để chỉ in cái này trước.

outfile_directory = os.path.join('data', 'outfiles')
1

Khi bạn kiểm tra đầu ra này, bạn sẽ phát hiện ra rằng nếu dòng chứa từ khóa của chúng tôi (

for f in filenames:
    outfile = open(f,'r')
    data = outfile.readlines()
    outfile.close()
    for line in data:
        if 'Final Energy' in line:
            energy_line = line
            words = energy_line.split()
            energy = float(words[3])
            print(energy)
4), thì giá trị được liên kết sẽ là phần tử
for f in filenames:
    outfile = open(f,'r')
    data = outfile.readlines()
    outfile.close()
    for line in data:
        if 'Final Energy' in line:
            energy_line = line
            words = energy_line.split()
            energy = float(words[3])
            print(energy)
5 trong
for f in filenames:
    outfile = open(f,'r')
    data = outfile.readlines()
    outfile.close()
    for line in data:
        if 'Final Energy' in line:
            energy_line = line
            words = energy_line.split()
            energy = float(words[3])
            print(energy)
6 (hãy nhớ rằng việc đếm bắt đầu từ 0). Hãy để in bản in đó.if the line contains our keyword (
for f in filenames:
    outfile = open(f,'r')
    data = outfile.readlines()
    outfile.close()
    for line in data:
        if 'Final Energy' in line:
            energy_line = line
            words = energy_line.split()
            energy = float(words[3])
            print(energy)
4), then the value associated will be element
for f in filenames:
    outfile = open(f,'r')
    data = outfile.readlines()
    outfile.close()
    for line in data:
        if 'Final Energy' in line:
            energy_line = line
            words = energy_line.split()
            energy = float(words[3])
            print(energy)
5 in
for f in filenames:
    outfile = open(f,'r')
    data = outfile.readlines()
    outfile.close()
    for line in data:
        if 'Final Energy' in line:
            energy_line = line
            words = energy_line.split()
            energy = float(words[3])
            print(energy)
6 (remember that counting starts at 0). Let’s print that.

outfile_directory = os.path.join('data', 'outfiles')
2

Bây giờ tất cả những gì còn lại là viết thông tin này vào một tệp. Chúng ta sẽ cần phải mở tệp trước vòng lặp, ghi vào nó bên trong vòng lặp và cuối cùng đóng nó bên ngoài vòng lặp. Giải pháp cuối cùng của chúng tôi là

outfile_directory = os.path.join('data', 'outfiles')
3

Những điểm chính

  • Sử dụng chức năng GLOB trong Thư viện Python để tìm tất cả các tệp bạn muốn phân tích.

  • Bạn có thể có nhiều vòng

    outfile_directory = os.path.join('data', 'outfiles')
    
    4 lồng nhau trong nhau.

  • Python chỉ có thể in chuỗi vào các tập tin.

  • Don Tiết quên đóng các tập tin nên Python thực sự sẽ viết chúng.

Bạn có thể lưu nhiều tệp cùng một lúc không?

Mở cửa sổ Tệp và nhấp vào Lưu tất cả. Chọn các tệp mà bạn muốn lưu. Select the files that you want to save. Click Save.

Làm thế nào chúng ta có thể lưu trữ nhiều tệp ở một nơi?

Giữ phím CTRL trong khi bạn nhấp vào mỗi tệp Adobe. Hãy truy cập khóa CTRL, nhấp chuột trái vào các tệp và kéo vào thư mục mới. Let go of the Ctrl key, left click on the files and drag the to the new folder.