Hướng dẫn python write list of numbers to file - python ghi danh sách các số vào tệp

Tôi đang cố gắng viết một tệp văn bản từ một danh sách, nó hoạt động hoàn hảo với một danh sách các chuỗi, mỗi phần tử được đặt trên một dòng mới. Nhưng khi tôi cố gắng viết từ một danh sách với số nguyên thì nó không hoạt động. Điều là tôi cần danh sách đó như một danh sách số nguyên ở một nơi khác trong mã [khi so sánh các giá trị trong một câu chuyện if] và tôi đã cố gắng chuyển đổi danh sách số nguyên thành danh sách chuỗi, nhưng sau đó là các số được đặt trên các dòng riêng biệt như ví dụ,

Tôi phải viết năm 2016 trong một dòng:

2016

Nhưng, nó trở nên như thế này

2
0
1
6

Dưới đây là mã để ghi vào tệp văn bản:

in ["năm viết:"] năm.append [int [input []]]]

... Một số mã cần danh sách năm là một số nguyên ...

Year_String = str [năm]

with open['movietitle.txt', 'w'] as file:
    file.write['\n'.join[movietitle]]

with open['year_string.txt', 'w'] as file:
    file.write['\n'.join[year_string]]

with open['genre.txt', 'w'] as file:
    file.write['\n'.join[genre]]

with open['review.txt', 'w'] as file:
    file.write['\n'.join[review]]

Biết cách viết các yếu tố của danh sách vào một tệp trong Python có thể tiện dụng. Trong hướng dẫn này, bạn sẽ thấy cách làm điều đó theo nhiều cách.

Một cách tiếp cận phổ biến để viết các yếu tố của danh sách vào một tệp sử dụng Python là để lặp đầu tiên thông qua các yếu tố của danh sách bằng cách sử dụng vòng lặp. Sau đó sử dụng một đối tượng tệp để ghi mọi yếu tố của danh sách vào một tệp như một phần của mỗi lần lặp vòng lặp. Đối tượng tệp cần được mở trong chế độ ghi.

Có nhiều kịch bản trong đó viết các mục của một danh sách vào một tệp có thể trở nên hữu ích.

Hãy xem một ví dụ!

  • Cách lưu trữ các yếu tố của danh sách Python trong một tệp
  • Bạn thấy lỗi gì khi ghi vào tệp được mở ở chế độ đọc?
  • Viết danh sách vào tệp bằng cách sử dụng câu lệnh mở
  • Viết danh sách vào tệp bằng phương thức tham gia chuỗi
  • Viết danh sách Python vào tệp bằng cách sử dụng WriteLines
  • Cách viết danh sách vào tệp bằng cách sử dụng Python Lambda
  • Sự kết luận

Cách lưu trữ các yếu tố của danh sách Python trong một tệp

Bạn thấy lỗi gì khi ghi vào tệp được mở ở chế độ đọc?

Viết danh sách vào tệp bằng cách sử dụng câu lệnh mở

Viết danh sách vào tệp bằng phương thức tham gia chuỗi

months = ['January', 'February', 'March', 'April']

Viết danh sách Python vào tệp bằng cách sử dụng WriteLines

output_file = open['months.txt', 'w']for month in months:    output_file.write[month]output_file.close[]

Cách viết danh sách vào tệp bằng cách sử dụng Python Lambda

Hãy tưởng tượng bạn đang xây dựng một ứng dụng cần phải tồn tại một danh sách các mục sau khi thực hiện nó.

Điều này có thể được yêu cầu, ví dụ, nếu mỗi lần bạn chạy ứng dụng, bạn lưu trữ dữ liệu trong một tệp và dữ liệu đó có thể được đọc và sử dụng vào lần tới khi bạn chạy ứng dụng của mình.

$ cat months.txtJanuaryFebruaryMarchApril 

Hãy xem cách bạn có thể lấy danh sách các chuỗi bên dưới và lưu trữ từng chuỗi trong một tệp bằng Python.

output_file = open['months.txt', 'w']for month in months:    output_file.write[month + '\n']output_file.close[]

Chúng tôi sẽ mở một đối tượng tệp ở chế độ ghi và sau đó sử dụng một vòng lặp để ghi từng phần tử vào tệp:

$ cat months.txt JanuaryFebruaryMarchApril 

Bạn thấy lỗi gì khi ghi vào tệp được mở ở chế độ đọc?

Viết danh sách vào tệp bằng cách sử dụng câu lệnh mở

Viết danh sách vào tệp bằng phương thức tham gia chuỗi

output_file = open['months.txt', 'w']

Viết danh sách Python vào tệp bằng cách sử dụng WriteLines

Cách viết danh sách vào tệp bằng cách sử dụng Python Lambda

output_file = open['months.txt']

Hãy tưởng tượng bạn đang xây dựng một ứng dụng cần phải tồn tại một danh sách các mục sau khi thực hiện nó.

2
0
1
6
0

Điều này có thể được yêu cầu, ví dụ, nếu mỗi lần bạn chạy ứng dụng, bạn lưu trữ dữ liệu trong một tệp và dữ liệu đó có thể được đọc và sử dụng vào lần tới khi bạn chạy ứng dụng của mình.read mode.

Hãy xem cách bạn có thể lấy danh sách các chuỗi bên dưới và lưu trữ từng chuỗi trong một tệp bằng Python.

2
0
1
6
1

Chúng tôi sẽ mở một đối tượng tệp ở chế độ ghi và sau đó sử dụng một vòng lặp để ghi từng phần tử vào tệp:

Viết danh sách vào tệp bằng cách sử dụng câu lệnh mở

Viết danh sách vào tệp bằng phương thức tham gia chuỗi

Viết danh sách Python vào tệp bằng cách sử dụng WriteLines

Cách viết danh sách vào tệp bằng cách sử dụng Python Lambda

2
0
1
6
2

Hãy tưởng tượng bạn đang xây dựng một ứng dụng cần phải tồn tại một danh sách các mục sau khi thực hiện nó.

Điều này có thể được yêu cầu, ví dụ, nếu mỗi lần bạn chạy ứng dụng, bạn lưu trữ dữ liệu trong một tệp và dữ liệu đó có thể được đọc và sử dụng vào lần tới khi bạn chạy ứng dụng của mình.

Viết danh sách vào tệp bằng phương thức tham gia chuỗi

Tôi tự hỏi nếu tôi có thể thay thế vòng lặp For bằng một dòng sử dụng phương thức chuỗi nối [].

Phương thức tham gia chuỗi kết hợp các phần tử của chuỗi thành một chuỗi trong đó mọi phần tử được tách ra khỏi một phần khác bằng phương thức chuỗi được áp dụng cho.

Có thể dễ dàng hơn để hiển thị nó trong vỏ trăn 🙂

2
0
1
6
3

Tôi đã sử dụng ký tự # trong ví dụ này bởi vì theo cách này, dễ dàng hơn để xem số # được sử dụng để tách các phần tử trong danh sách.

Lưu ý rằng ký tự phân tách # không xuất hiện sau phần tử cuối cùng.

Vì vậy, đây là kết quả nếu chúng tôi sử dụng phương pháp này trong chương trình của mình và thay thế ký tự # bằng ký tự dòng mới:

2
0
1
6
4

Kết quả là:

2
0
1
6
5

Đồng đô la ở cuối dòng cuối cùng là bản thân Shell khi xem xét rằng ký tự dòng mới không có mặt ở cuối dòng cuối cùng.

Vì vậy, loại phương pháp này hoạt động nhưng nó không tốt bằng vòng lặp vì nó không thêm một ký tự dòng mới trong dòng cuối cùng của tệp.

Viết danh sách Python vào tệp bằng cách sử dụng WriteLines

Đối tượng tệp Python cung cấp một phương thức gọi là writeLines [] ghi một chuỗi các chuỗi vào một tệp.

Nó cảm thấy nó có thể là một cách tốt để làm điều này, hãy thử!

2
0
1
6
6

Đây là đầu ra khi tôi chạy chương trình:

2
0
1
6
7

Hmmm… điều này không đúng.

Phương thức WriteLines [] không thêm bất kỳ dấu phân cách dòng nào..

Tôi tự hỏi tại sao?!?

Những gì chúng ta có thể làm là thêm ký tự dòng mới sau mỗi phần tử trong danh sách và sau đó chuyển danh sách cho phương thức WriteLines.

Hãy sử dụng danh sách hiểu để làm điều đó:

2
0
1
6
8

Bạn có thể thấy rằng chúng tôi cũng đang sử dụng phương thức String định dạng [] để thêm ký tự dòng mới ở cuối mỗi chuỗi trong danh sách.

Đầu ra chúng ta lấy lại có vẻ tốt:

2
0
1
6
9

Cách tiếp cận cuối cùng mà chúng tôi sẽ sử dụng để viết các chuỗi trong danh sách của chúng tôi vào một tệp cũng sẽ sử dụng hàm Lambda và hàm bản đồ.map function.

Sử dụng Lambdas là không thực sự cần thiết, chúng tôi đang thực hiện nó trong hướng dẫn này như một bài tập để làm mới các khái niệm Python nâng cao hơn.

Dưới đây bạn có thể thấy cú pháp của hàm bản đồ:

with open['movietitle.txt', 'w'] as file:
    file.write['\n'.join[movietitle]]

with open['year_string.txt', 'w'] as file:
    file.write['\n'.join[year_string]]

with open['genre.txt', 'w'] as file:
    file.write['\n'.join[genre]]

with open['review.txt', 'w'] as file:
    file.write['\n'.join[review]]
0

Hàm bản đồ áp dụng chức năng được truyền dưới dạng tham số đầu tiên cho mọi mục của ITEBLEBLE. Trong trường hợp này, hàm sẽ là hàm Lambda nối các ký tự dòng mới vào một chuỗi đã cho và ghi kết quả vào một đối tượng tệp.

Chúng tôi sẽ sử dụng điều này như một cách tiếp cận chung để viết mọi mục trong danh sách theo sau là một dòng mới vào tệp đầu ra.

Đây là chức năng Lambda để sử dụng:

with open['movietitle.txt', 'w'] as file:
    file.write['\n'.join[movietitle]]

with open['year_string.txt', 'w'] as file:
    file.write['\n'.join[year_string]]

with open['genre.txt', 'w'] as file:
    file.write['\n'.join[genre]]

with open['review.txt', 'w'] as file:
    file.write['\n'.join[review]]
1

Và bây giờ hãy chuyển Lambda cho chức năng bản đồ:

with open['movietitle.txt', 'w'] as file:
    file.write['\n'.join[movietitle]]

with open['year_string.txt', 'w'] as file:
    file.write['\n'.join[year_string]]

with open['genre.txt', 'w'] as file:
    file.write['\n'.join[genre]]

with open['review.txt', 'w'] as file:
    file.write['\n'.join[review]]
2

Hãy xác nhận nếu đầu ra là chính xác

2
0
1
6
9

Vâng, đúng vậy!

Sự kết luận

Chúng tôi đã thấy rất nhiều cách tiếp cận khác nhau để viết các yếu tố của danh sách Python vào một tập tin.

Đó là một bài tập tốt để thực hành nhiều cách để giải quyết cùng một vấn đề trong Python.

Hãy cho tôi biết trong các bình luận, bạn thích cái nào hơn? 🙂

Bài viết liên quan:

Tôi là một nhà lãnh đạo công nghệ, kỹ sư phần mềm và huấn luyện viên lập trình. Tôi muốn giúp bạn trong hành trình trở thành một nhà phát triển siêu!

Bài Viết Liên Quan

Chủ Đề