Đã hỏi 10 năm, 10 tháng trước 10 years, 10 months ago Show Đã xem 225k lần 225k times Tôi đang làm việc với một tệp .txt. Tôi muốn một chuỗi văn bản từ tệp không có ký tự không phải ASCII. Tuy nhiên, tôi muốn để lại không gian và thời gian. Hiện tại, tôi cũng đang tước những thứ đó. Đây là mã:
Làm thế nào tôi nên sửa đổi Onlyascii () để rời khỏi không gian và thời gian? Tôi tưởng tượng nó không quá phức tạp nhưng tôi không thể tìm ra nó.
Martineau Huy hiệu vàng 116K2525 gold badges161 silver badges286 bronze badges Hỏi ngày 31 tháng 12 năm 2011 lúc 18:23Dec 31, 2011 at 18:23 2 Bạn có thể lọc tất cả các ký tự từ chuỗi không thể in bằng String.Printable, như thế này:
String.printable trên máy của tôi chứa:
Chỉnh sửa: Trên Python 3, bộ lọc sẽ trả về một điều khác. Cách chính xác để có được một chuỗi trở lại sẽ là:
Đã trả lời ngày 31 tháng 12 năm 2011 lúc 18:29Dec 31, 2011 at 18:29
Jterracejterracejterrace 62.6K22 Huy hiệu vàng155 Huy hiệu bạc196 Huy hiệu đồng22 gold badges155 silver badges196 bronze badges 23 Một cách dễ dàng để thay đổi thành một codec khác, là bằng cách sử dụng mã hóa () hoặc giải mã (). Trong trường hợp của bạn, bạn muốn chuyển đổi sang ASCII và bỏ qua tất cả các biểu tượng không được hỗ trợ. Ví dụ, chữ Thụy Điển không phải là một ký tự ASCII:
Edit: Python3: str -> byte -> str
Python2: unicode -> str -> unicode
Python2: str -> unicode -> str (giải mã và mã hóa theo thứ tự ngược lại)
Đã trả lời ngày 25 tháng 8 năm 2013 lúc 15:50Aug 25, 2013 at 15:50
ZweedeendzweedeendZweedeend 2.4552 Huy hiệu vàng16 Huy hiệu bạc19 Huy hiệu đồng2 gold badges16 silver badges19 bronze badges 4 Theo @artfulrobot, điều này sẽ nhanh hơn Filter và Lambda:
Xem thêm các ví dụ ở đây thay thế các ký tự không phải ASCII bằng một khoảng trống Đã trả lời ngày 23 tháng 2 năm 2016 lúc 14:14Feb 23, 2016 at 14:14
Noam Manosnoam ManosNoam Manos 13.7k3 Huy hiệu vàng79 Huy hiệu bạc83 Huy hiệu Đồng3 gold badges79 silver badges83 bronze badges 1 Bạn có thể sử dụng mã sau để xóa các chữ cái không phải tiếng Anh:
Điều này sẽ trở lại
Đã trả lời ngày 30 tháng 7 năm 2019 lúc 22:27Jul 30, 2019 at 22:27
Noha Elprincenoha ElprinceNoha Elprince 1.9241 Huy hiệu vàng15 Huy hiệu bạc10 Huy hiệu đồng1 gold badge15 silver badges10 bronze badges Câu hỏi của bạn là mơ hồ; Hai câu đầu tiên được thực hiện với nhau ngụ ý rằng bạn tin rằng không gian và "giai đoạn" là các ký tự không phải là ASCII. Điều này là không đúng. Tất cả các ký tự sao đó là ord (char) Xin hãy lùi lại, suy nghĩ một chút và chỉnh sửa câu hỏi của bạn để cho chúng tôi biết bạn đang cố gắng làm gì, mà không đề cập đến từ ASCII và tại sao bạn nghĩ rằng chars sao cho ord (char)> = 128 không thể tin được. Ngoài ra: phiên bản nào của Python? Mã hóa dữ liệu đầu vào của bạn là gì? Xin lưu ý rằng mã của bạn đọc toàn bộ tệp đầu vào dưới dạng một chuỗi duy nhất và nhận xét của bạn ("giải pháp tuyệt vời") cho một câu trả lời khác ngụ ý rằng bạn không quan tâm đến Newlines trong dữ liệu của mình. Nếu tệp của bạn chứa hai dòng như thế này: 0Kết quả sẽ là 4 ... đó có phải là những gì bạn thực sự muốn?Một giải pháp lớn hơn sẽ bao gồm:
Paul 9.82411 Huy hiệu vàng48 Huy hiệu bạc78 Huy hiệu đồng11 gold badges48 silver badges78 bronze badges Đã trả lời ngày 31 tháng 12 năm 2011 lúc 22:02Dec 31, 2011 at 22:02
John Machinjohn MachinJohn Machin 79,7K11 Huy hiệu vàng138 Huy hiệu bạc185 Huy hiệu đồng11 gold badges138 silver badges185 bronze badges 1 Làm việc theo cách của tôi thông qua Python trôi chảy (Ramalho) - Rất khuyến khích. Danh sách hiểu biết một-ish-liners lấy cảm hứng từ Chương 2: 2Đã trả lời ngày 14 tháng 9 năm 2017 lúc 18:27Sep 14, 2017 at 18:27
1 Nếu bạn muốn các ký tự ASCII có thể in, bạn có thể sẽ sửa mã của mình thành: 3Điều này tương đương, với 6 (câu trả lời từ @jterrace), ngoại trừ việc không có lợi nhuận và tab ('\ t', '\ n', '\ x0b', '\ x0c' và '\ r') nhưng không tương ứng đến phạm vi trên câu hỏi của bạnĐã trả lời ngày 31 tháng 12 năm 2011 lúc 18:50Dec 31, 2011 at 18:50
Joaquinjoaquinjoaquin 79,9K28 Huy hiệu vàng137 Huy hiệu bạc151 Huy hiệu đồng28 gold badges137 silver badges151 bronze badges 5 Làm thế nào để bạn thay đổi giá trị ASCII trong Python?chr () là một hàm tích hợp trong python được sử dụng để chuyển đổi mã ASCII thành ký tự tương ứng của nó. Tham số được truyền trong hàm là một giá trị loại số nguyên. Hàm trả về một ký tự mà tham số là mã ASCII.. The parameter passed in the function is a numeric, integer type value. The function returns a character for which the parameter is the ASCII code.
Làm thế nào để bạn tìm thấy các ký tự không phải ASCII trong Python?Bạn có thể kiểm tra giá trị ký tự nằm trong khoảng từ 0 - 127. Đối với c trong somestring: nếu 0check the if the character value is between 0 - 127. for c in someString: if 0 <= ord(c) <= 127: # this is a ascii character. else: # this is a non-ascii character.
Làm cách nào để loại bỏ các ký tự unicode khỏi chuỗi?Làm thế nào để tôi thoát khỏi Unicode ?.. Sử dụng phương thức encode () và decode () .. Sử dụng phương thức thay thế () để xóa các ký tự unicode .. Sử dụng ký tự.phương thức isalnum () để loại bỏ các ký tự đặc biệt trong Python .. Sử dụng biểu thức chính quy để loại bỏ các ký tự unicode cụ thể trong Python .. Làm cách nào để loại bỏ một nhân vật kỳ lạ trong Python?Sử dụng 'str.Thay thế (), chúng ta có thể thay thế một ký tự cụ thể.Nếu chúng ta muốn xóa ký tự cụ thể đó, hãy thay thế ký tự đó bằng một chuỗi trống.STR.Phương thức thay thế () sẽ thay thế tất cả các lần xuất hiện của ký tự cụ thể được đề cập.replace that character with an empty string. The str. replace() method will replace all occurrences of the specific character mentioned. |