Hướng dẫn how do you get rid of n in a string in python? - làm thế nào để bạn loại bỏ n trong một chuỗi trong python?

Đây là vấn đề của tôi.

Tôi đang cố đọc một tệp văn bản và sau đó chuyển đổi các dòng thành phao. Tệp văn bản có \n\t trong đó mặc dù tôi không biết làm thế nào để loại bỏ nó.

Tôi đã thử sử dụng line.strip() nhưng nó đã không tắt và tôi đã gặp lỗi khi tôi muốn chuyển đổi các thứ thành phao. Sau đó tôi đã thử line.strip("\n") nhưng điều đó cũng không hoạt động. Chương trình của tôi hoạt động tốt khi tôi lấy ra \t\n từ tệp văn bản, nhưng đó là một phần của bài tập để khiến nó hoạt động với họ.

Tôi thực sự không biết tại sao điều này không hoạt động. Cảm ơn vì bất kì sự giúp đỡ.

Hướng dẫn how do you get rid of n in a string in python? - làm thế nào để bạn loại bỏ n trong một chuỗi trong python?

John Machin

79,8K11 Huy hiệu vàng138 Huy hiệu bạc185 Huy hiệu đồng11 gold badges138 silver badges185 bronze badges

hỏi ngày 19 tháng 2 năm 2012 lúc 7:07Feb 19, 2012 at 7:07

5

Bạn sẽ có thể sử dụng

line = line.replace('\n','')
line = line.replace('\t','')
1 và
line = line.replace('\n','')
line = line.replace('\t','')
2. Nhưng những điều này không sửa đổi biến
line = line.replace('\n','')
line = line.replace('\t','')
3 ... họ chỉ trả lại chuỗi với \n\t bị tước. Vì vậy, bạn sẽ phải làm một cái gì đó như

line = line.strip('\n')
line = line.strip('\t')

Điều đó nên làm việc để loại bỏ từ đầu và kết thúc. Nếu bạn có \n\t ở giữa chuỗi, bạn cần phải làm

line = line.replace('\n','')
line = line.replace('\t','')

Để thay thế \n\t bằng hư vô.

Đã trả lời ngày 19 tháng 2 năm 2012 lúc 7:17Feb 19, 2012 at 7:17

Hướng dẫn how do you get rid of n in a string in python? - làm thế nào để bạn loại bỏ n trong một chuỗi trong python?

austin1howardaustin1howardaustin1howard

4.7153 Huy hiệu vàng19 Huy hiệu bạc22 Huy hiệu đồng3 gold badges19 silver badges22 bronze badges

3

Phương thức

floats = []
with open(filename) as f:
    for line in f:
        floats.extend([float(number) for number in line.split()])
0 loại bỏ khoảng trắng theo mặc định, do đó không cần phải gọi nó với các tham số như '\ t' hoặc '\ n'. Tuy nhiên, các chuỗi trong Python là bất biến và không thể sửa đổi, tức là cuộc gọi line.strip() sẽ không thay đổi đối tượng
line = line.replace('\n','')
line = line.replace('\t','')
3. Kết quả là một chuỗi mới được trả về bởi cuộc gọi.

Như đã đề cập, nó sẽ giúp nếu bạn đăng một ví dụ từ tệp đầu vào của mình. Nếu có nhiều hơn một số trên mỗi dòng,

floats = []
with open(filename) as f:
    for line in f:
        floats.extend([float(number) for number in line.split()])
0 không phải là hàm để sử dụng. Thay vào đó, bạn nên sử dụng
floats = []
with open(filename) as f:
    for line in f:
        floats.extend([float(number) for number in line.split()])
4, cũng là một phương thức chuỗi.

Để kết luận, giả sử rằng mỗi dòng chứa một số phao được phân tách bằng khoảng trắng và bạn muốn xây dựng một danh sách tất cả các số, bạn có thể thử như sau:

floats = []
with open(filename) as f:
    for line in f:
        floats.extend([float(number) for number in line.split()])

Đã trả lời ngày 19 tháng 2 năm 2012 lúc 17:27Feb 19, 2012 at 17:27

Bạn có thể dùng:

mylist = []
# Assuming that you have loaded data into a lines variable. 
for line in lines:
    mylist.append(line.strip().split('\t')

Để có được một danh sách Python chỉ với các giá trị trường cho tất cả các dòng dữ liệu.

Đã trả lời ngày 7 tháng 9 năm 2016 lúc 13:51Sep 7, 2016 at 13:51

Hướng dẫn how do you get rid of n in a string in python? - làm thế nào để bạn loại bỏ n trong một chuỗi trong python?

JobeljobelJobel

6136 Huy hiệu bạc12 Huy hiệu Đồng6 silver badges12 bronze badges

Làm thế nào về việc sử dụng mẫu Python Regex?

import re
f = open('test.txt', 'r')
strings = re.findall(r"\S+", f.read())

Và đối với trường hợp của bạn về line.strip () sẽ không hoạt động vì Python chỉ loại bỏ các ký tự hàng đầu và theo dõi

Từ Python Docs - Trả lại một bản sao của chuỗi với các ký tự dẫn đầu và dấu vết đã bị xóa. Nếu chars bị bỏ qua hoặc không có, các ký tự khoảng trắng sẽ bị xóa. Nếu được đưa ra và không phải là không, chars phải là một chuỗi; Các ký tự trong chuỗi sẽ bị tước từ cả hai đầu của chuỗi Phương thức này được gọi.leading and trailing characters removed. If chars is omitted or None, whitespace characters are removed. If given and not None, chars must be a string; the characters in the string will be stripped from the both ends of the string this method is called on.

Đã trả lời ngày 19 tháng 2 năm 2012 lúc 7:52Feb 19, 2012 at 7:52

Sransarasransarasransara

3,4262 huy hiệu vàng18 Huy hiệu bạc21 Huy hiệu đồng2 gold badges18 silver badges21 bronze badges

Thư viện Pythons CSV là tốt cho việc này.

http://docs.python.org/library/csv.html

CSV = các giá trị tách biệt bằng dấu phẩy, nhưng nếu bạn đặt Delimiter = \ T, thì nó cũng hoạt động cho các giá trị phân tách tab.

Đã trả lời ngày 19 tháng 2 năm 2012 lúc 7:15Feb 19, 2012 at 7:15

Hướng dẫn how do you get rid of n in a string in python? - làm thế nào để bạn loại bỏ n trong một chuỗi trong python?

Rusty Robrusty RobRusty Rob

15.8k8 Huy hiệu vàng94 Huy hiệu bạc112 Huy hiệu đồng8 gold badges94 silver badges112 bronze badges

Thông thường, tùy thuộc vào cách bạn đọc các dòng, để loại bỏ \ n khỏi myline, bạn có thể lấy myline [:-1] vì \ n là ký tự cuối cùng của myLine.

Đối với '\ t', bạn có thể sử dụng thay thế () hoặc dải ()

Đã trả lời ngày 19 tháng 2 năm 2012 lúc 7:32Feb 19, 2012 at 7:32

Jimifikijimifikijimifiki

5.2742 Huy hiệu vàng34 Huy hiệu bạc57 Huy hiệu đồng2 gold badges34 silver badges57 bronze badges

Nếu bạn đang cố gắng chuyển đổi các dòng phao được phân tách bằng các ký tự tab, thì chỉ cần

floats = []
with open(filename) as f:
    for line in f:
        floats.extend([float(number) for number in line.split()])
5 sẽ cố gắng chuyển đổi toàn bộ dòng thành một phao, điều này sẽ thất bại nếu có nhiều hơn một. Sử dụng
floats = []
with open(filename) as f:
    for line in f:
        floats.extend([float(number) for number in line.split()])
6 để loại bỏ khoảng trắng dẫn đầu và theo dõi sẽ không giúp ích gì cho vấn đề cơ bản đó.

Có lẽ bạn cần phải

floats = []
with open(filename) as f:
    for line in f:
        floats.extend([float(number) for number in line.split()])
7 mỗi dòng thành từng mảnh và làm một cái gì đó với mỗi mảnh?

Đã trả lời ngày 19 tháng 2 năm 2012 lúc 7:51Feb 19, 2012 at 7:51

BenbenBen

65.1K20 Huy hiệu vàng125 Huy hiệu bạc169 Huy hiệu đồng20 gold badges125 silver badges169 bronze badges