Hướng dẫn how does python handle multiple text files? - python xử lý nhiều tệp văn bản như thế nào?

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

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

  • 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

file_location = os.path.join('data', 'outfiles', '*.out')
print(file_location)
4, đó 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
file_location = os.path.join('data', 'outfiles', '*.out')
print(file_location)
4, 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

file_location = os.path.join('data', 'outfiles', '*.out')
print(file_location)
5, đ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

file_location = os.path.join('data', 'outfiles', '*.out')
print(file_location)
6 kiểm soát các chức năng liên quan đến hệ điều hành 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
file_location = os.path.join('data', 'outfiles', '*.out')
print(file_location)
5 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

file_location = os.path.join('data', 'outfiles', '*.out')
print(file_location)
4 để 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)
9.

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à

import glob
filenames = glob.glob(file_location)
print(filenames)
0 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à

file_location = os.path.join('data', 'outfiles', '*.out')
print(file_location)
5 trong thư viện có tên là
file_location = os.path.join('data', 'outfiles', '*.out')
print(file_location)
5. Đó 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
file_location = os.path.join('data', 'outfiles', '*.out')
print(file_location)
5 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

import glob
filenames = glob.glob(file_location)
print(filenames)
4 trong thư mục
import glob
filenames = glob.glob(file_location)
print(filenames)
5. 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
file_location = os.path.join('data', 'outfiles', '*.out')
print(file_location)
3 để đ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

file_location = os.path.join('data', 'outfiles', '*.out')
print(file_location)
3, một vòng khác nhau bên trong cái kia. Vòng lặp
file_location = os.path.join('data', 'outfiles', '*.out')
print(file_location)
3 bên ngoài được tính trên các tên tệp mà chúng ta đọc trước đó. Vòng lặp
file_location = os.path.join('data', 'outfiles', '*.out')
print(file_location)
3 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

['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']
0, đây là một chức năng khác trong
file_location = os.path.join('data', 'outfiles', '*.out')
print(file_location)
4 để 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ẽ sử dụng mô -đun

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

Dung dịch

Để 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)
9.

split_filename = file_name.split('.')
molecule_name = split_filename[0]
print(molecule_name)

Đ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à

import glob
filenames = glob.glob(file_location)
print(filenames)
0 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.

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

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

Tiếp theo chúng ta sẽ sử dụng một hàm gọi là file_location = os.path.join('data', 'outfiles', '*.out') print(file_location) 5 trong thư viện có tên là file_location = os.path.join('data', 'outfiles', '*.out') print(file_location) 5. Đó 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 file_location = os.path.join('data', 'outfiles', '*.out') print(file_location) 5 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.

Đ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

import glob
filenames = glob.glob(file_location)
print(filenames)
4 trong thư mục
import glob
filenames = glob.glob(file_location)
print(filenames)
5. 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
file_location = os.path.join('data', 'outfiles', '*.out')
print(file_location)
3 để đi qua mỗi tệp.

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

['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 có nghĩa là mở tệp để viết. Nếu bạn sử dụng
['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 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
['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 để nối vào tệp hiện có hoặc
['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. Sự khác biệt giữa
['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 và
['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 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']
4 sẽ ghi đè lên tệp nếu nó đã tồn tại, trong khi
['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 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

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)
1 để 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
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)
1 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

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')
3

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ú ý

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)
3 ở 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
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 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
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 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

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

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à

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. Đâ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:

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

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

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)
7. Khi bạn mở nó, nó sẽ trông như thế này:

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

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)
8 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.

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

Đố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.

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

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)
9. 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)
9 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
-232.1655798347283
-466.3836241400086
-154.09130176573018
-349.27397687072676
-310.2385332251633
-115.04800861868374
-427.3465180082815
-388.3110864554743
-271.20138119895074
-193.12836249728798
1.

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

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

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

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.

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

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 (

-232.1655798347283
-466.3836241400086
-154.09130176573018
-349.27397687072676
-310.2385332251633
-115.04800861868374
-427.3465180082815
-388.3110864554743
-271.20138119895074
-193.12836249728798
3), thì giá trị được liên kết sẽ là phần tử
-232.1655798347283
-466.3836241400086
-154.09130176573018
-349.27397687072676
-310.2385332251633
-115.04800861868374
-427.3465180082815
-388.3110864554743
-271.20138119895074
-193.12836249728798
4 trong
-232.1655798347283
-466.3836241400086
-154.09130176573018
-349.27397687072676
-310.2385332251633
-115.04800861868374
-427.3465180082815
-388.3110864554743
-271.20138119895074
-193.12836249728798
5 (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 (
-232.1655798347283
-466.3836241400086
-154.09130176573018
-349.27397687072676
-310.2385332251633
-115.04800861868374
-427.3465180082815
-388.3110864554743
-271.20138119895074
-193.12836249728798
3), then the value associated will be element
-232.1655798347283
-466.3836241400086
-154.09130176573018
-349.27397687072676
-310.2385332251633
-115.04800861868374
-427.3465180082815
-388.3110864554743
-271.20138119895074
-193.12836249728798
4 in
-232.1655798347283
-466.3836241400086
-154.09130176573018
-349.27397687072676
-310.2385332251633
-115.04800861868374
-427.3465180082815
-388.3110864554743
-271.20138119895074
-193.12836249728798
5 (remember that counting starts at 0). Let’s print that.

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

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à

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

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

    file_location = os.path.join('data', 'outfiles', '*.out')
    print(file_location)
    
    3 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ể mở nhiều tệp văn bản trong Python không?

Các bước được sử dụng để mở nhiều tệp với nhau trong Python: cả hai tệp được mở bằng phương thức mở () bằng cách sử dụng các tên khác nhau cho mỗi tệp. Nội dung của các tệp có thể được truy cập bằng phương thức readline (). Các hoạt động đọc/ghi khác nhau có thể được thực hiện trên nội dung của các tệp này.Both the files are opened with an open() method using different names for each. The contents of the files can be accessed using the readline() method. Different read/write operations can be performed over the contents of these files.

Làm cách nào để đọc nhiều tệp .text từ thư mục trong Python?

Nhập mô -đun HĐH trong sổ ghi chép của bạn.Xác định một đường dẫn nơi các tệp văn bản được đặt trong hệ thống của bạn.Tạo một danh sách các tệp và lặp lại để tìm xem tất cả chúng có mở rộng chính xác hay không.Đọc các tệp bằng hàm được xác định trong mô -đun.

Làm thế nào để bạn viết nhiều tệp văn bản trong Python?

Chỉ cần thêm '\ n' trong 'file.write ("{}, \ n".add '\n' in 'file. write("{},\n".

Làm thế nào để bạn xử lý nhiều tệp trong Python?

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 cho các vòng lồng bên trong nhau.Python chỉ có thể in chuỗi vào các tập tin.Đừng quên đóng các tệp nên Python thực sự sẽ viết chúng.. You can have multiple for loops nested inside each other. Python can only print strings to files. Don't forget to close files so python will actually write them.