Giả sử chúng ta có nhiều tệp văn bản như sau:
File1:
abc
def
ghi
file2:
ABC
DEF
GHI
file3:
adfafa
file4:
ewrtwe
rewrt
wer
wrwe
Làm thế nào chúng ta có thể tạo một tệp văn bản như bên dưới:
result:
abc
def
ghi
ABC
DEF
GHI
adfafa
ewrtwe
rewrt
wer
wrwe
Mã liên quan có thể là:
import csv
import glob
files = glob.glob['*.txt']
for file in files:
with open['result.txt', 'w'] as result:
result.write[str[file]+'\n']
Sau đây? Bất kỳ trợ giúp?
cs95
350K87 Huy hiệu vàng645 Huy hiệu bạc697 Huy hiệu Đồng87 gold badges645 silver badges697 bronze badges
hỏi ngày 19 tháng 7 năm 2013 lúc 14:46Jul 19, 2013 at 14:46
2
Bạn có thể đọc nội dung của từng tệp trực tiếp vào phương thức ghi của xử lý tệp đầu ra như thế này:
import glob
read_files = glob.glob["*.txt"]
with open["result.txt", "wb"] as outfile:
for f in read_files:
with open[f, "rb"] as infile:
outfile.write[infile.read[]]
Đã trả lời ngày 19 tháng 7 năm 2013 lúc 14:59Jul 19, 2013 at 14:59
Apiguyapiguyapiguy
5.2541 Huy hiệu vàng22 Huy hiệu bạc24 Huy hiệu đồng1 gold badge22 silver badges24 bronze badges
6
Mô -đun
ABC
DEF
GHI
3 được thiết kế hoàn hảo cho trường hợp sử dụng này.import fileinput
import glob
file_list = glob.glob["*.txt"]
with open['result.txt', 'w'] as file:
input_lines = fileinput.input[file_list]
file.writelines[input_lines]
Đã trả lời ngày 19 tháng 7 năm 2013 lúc 15:01Jul 19, 2013 at 15:01
llbllbllb
1.60110 Huy hiệu bạc14 Huy hiệu đồng10 silver badges14 bronze badges
2
Bạn có thể thử một cái gì đó như thế này:
import glob
files = glob.glob[ '*.txt' ]
with open[ 'result.txt', 'w' ] as result:
for file_ in files:
for line in open[ file_, 'r' ]:
result.write[ line ]
Nên thẳng về phía trước để đọc.
Đã trả lời ngày 19 tháng 7 năm 2013 lúc 14:58Jul 19, 2013 at 14:58
Cũng có thể kết hợp các tệp bằng cách kết hợp các lệnh HĐH. Thí dụ:
import os
import subprocess
subprocess.call["cat *.csv > /path/outputs.csv"]
Knak
4873 Huy hiệu bạc14 Huy hiệu đồng3 silver badges14 bronze badges
Đã trả lời ngày 17 tháng 5 năm 2016 lúc 10:46May 17, 2016 at 10:46
SadheeshsadheeshSadheesh
8277 Huy hiệu bạc6 Huy hiệu Đồng7 silver badges6 bronze badges
2
ABC
DEF
GHI
0
Celeo
5.4658 Huy hiệu vàng41 Huy hiệu bạc41 Huy hiệu đồng8 gold badges41 silver badges41 bronze badges
Đã trả lời ngày 4 tháng 6 năm 2015 lúc 16:20Jun 4, 2015 at 16:20
2
Bạn có thể hợp nhất nhiều tệp văn bản với một tệp CSV trong Python bằng cách sử dụng biểu thức
4 để lọc tất cả tên đường dẫn của tệp văn bản trong một thư mục nhất định. Sau đó lặp lại tất cả các tên đường dẫn đó và sử dụng hàm ABC
DEF
GHI
5 để đọc nội dung tệp và viết nối chúng vào CSV.ABC
DEF
GHI
Ở đây, ví dụ đơn giản:
ABC
DEF
GHI
1Tệp CSV đầu ra kết quả cho thấy tất cả các tệp văn bản đã được hợp nhất:
Bạn có thể thay thế dấu phân cách [ví dụ: từ không gian trống đơn sang dấu phẩy] bằng cách sử dụng hàm
ABC
DEF
GHI
6 trước khi ghi nó vào CSV:ABC
DEF
GHI
2CSV kết quả được phân tách gọn gàng với các ký tự dấu phẩy:
Trong trường hợp bạn cần một số cách nâng cao hơn để chuyển đổi các tệp văn bản thành CSV, bạn có thể muốn kiểm tra chức năng Pandas
ABC
DEF
GHI
7 để đọc CSV thành DataFrame.Ngay khi bạn có nó như một DataFrame, bạn có thể thực hiện xử lý nâng cao như hợp nhất, lựa chọn cột, cắt, v.v.
Hướng dẫn liên quan: Làm thế nào để đọc CSV cho DataFrame?Related Tutorial: How to Read a CSV to a DataFrame?
Trong khi làm việc như một nhà nghiên cứu trong các hệ thống phân tán, Tiến sĩ Christian Mayer đã tìm thấy tình yêu của mình đối với việc dạy các sinh viên khoa học máy tính.
Để giúp học sinh đạt được thành công cao hơn của Python, ông đã thành lập trang web giáo dục chương trình Finxter.com. Ông là tác giả của cuốn sách lập trình phổ biến Python Oneer [Nostarch 2020], đồng tác giả của loạt sách Break Break Python, những cuốn sách tự xuất bản, người đam mê khoa học máy tính, freelancer và chủ sở hữu của một trong 10 blog Python lớn nhất trên toàn thế giới.
Niềm đam mê của ông là viết, đọc và mã hóa. Nhưng niềm đam mê lớn nhất của anh là phục vụ các lập trình viên đầy tham vọng thông qua Finxter và giúp họ tăng cường các kỹ năng của họ. Bạn có thể tham gia học viện email miễn phí của anh ấy ở đây.