Hướng dẫn python read raw file - python đọc tệp thô

Cho một tệp chứa các dòng như:

Nội phân Chính showShow

  • Chuỗi Raw Python
  • Chuỗi và trích dẫn Python Raw
  • Muốn tìm hiểu thêm? Tham gia cộng đồng DigitalOcean!
  • Làm thế nào để bạn đọc một chuỗi là thô trong Python?
  • Làm cách nào để đọc một tệp văn bản dưới dạng chuỗi trong Python?
  • Làm thế nào để bạn chuyển đổi một biến chuỗi thành một chuỗi thô trong Python?
  • \ R làm gì trong Python?

(?i:\bsys\.user_catalog\b)

Trong khi đọc các dòng đó, tôi muốn giá trị là một chuỗi thô (chưa được phân giải), có nghĩa là, trong bộ nhớ, dòng

r'(?i:\bsys\.user_catalog\b)'

thay vì

(?i:\bsys\.user_catalog\b)

Được trốn thoát khi được truyền qua các lib như sqlobject.

Ví dụ, với sqlobject, nếu tôi nói

Table(column=r'(?i:\bsys\.user_catalog\b)')

Tôi nhận được kết quả mong muốn trong khi nếu tôi nói

Table(column='(?i:\bsys\.user_catalog\b)')

Tôi không.

Vì vậy, câu hỏi về cơ bản là, tôi có thể vượt qua một chuỗi thô khi tôi không ở chế độ khai báo/gán (ví dụ:

r'(?i:\bsys\.user_catalog\b)'
5), thay vào đó, chuỗi đã có trong bộ nhớ.

Brian van den Broek Bvande tại PO-Box.Mcgill.ca Thu ngày 8 tháng 4 12:59:05 EDT 2004 bvande at po-box.mcgill.ca
Thu Apr 8 12:59:05 EDT 2004
  • Tin nhắn trước: [Gia sư] Bạn có thể biến chuỗi từ một tệp thành chuỗi thô không?
  • Thông báo tiếp theo: [Gia sư] Bạn có thể biến chuỗi từ một tệp thành chuỗi thô không?
  • Tin nhắn được sắp xếp bởi: [Ngày] [Chủ đề] [Chủ đề] [Tác giả] [ date ] [ thread ] [ subject ] [ author ]

Karl Pflästerer said unto the world upon 08/04/2004 12:32:

> On  8 Apr 2004, Brian van den Broek <- bvande at po-box.mcgill.ca wrote:
> 
> [...]
> 
>>Why I care:
>>I am wanting to store a series of directory names in a plain text
>>config file. I can read the file just fine and have can do all I've
>>tried with the output of the readline() method so far. But, since I am
>>on a Windows machine, I would prefer to turn the readline() output
>>into a raw string. Otherwise, the directory separator '\' gets read as
>>an escape character. I know I can solve it by using '/' in place of
> 
> 
> Did you actually try that?  Here's a small example:
> 
> $ cat > raw_string
> c:\foo\bar\test\new\end
> 
> $ python
> Python 2.3.3 (#1, Dec 30 2003, 08:29:25) 
> [GCC 3.3.1 (cygming special)] on cygwin
> Type "help", "copyright", "credits" or "license" for more information.
> 
>>>>f = file('raw_string')
>>>>f.readline()
> 
> 'c:\\foo\\bar\\test\\new\\end\r\n'
> 
>>>>f = file('raw_string')
>>>>print f.readline()
> 
> c:\foo\bar\test\new\end
> 
> No interpolation happens (\t is tab and \n newline).
> 
> 
> 
>    Karl

Karl,

right you are. Thanks.

I think I confused myself by assuming that stuff that worked one 
way in the interactive prompt on strings typed in as literals and 
assigned to variables would work the same on a string taken from 
file.readline(). Clearly I need to know more about Python before 
running around making assumptions!

Sorry. On the plus side, I am getting the hang of it, if slowly.

Thanks again and best,

Brian vdB



  • Tin nhắn trước: [Gia sư] Bạn có thể biến chuỗi từ một tệp thành chuỗi thô không?
  • Thông báo tiếp theo: [Gia sư] Bạn có thể biến chuỗi từ một tệp thành chuỗi thô không?
  • Tin nhắn được sắp xếp bởi: [Ngày] [Chủ đề] [Chủ đề] [Tác giả] [ date ] [ thread ] [ subject ] [ author ]

Thêm thông tin về danh sách gửi thư gia sư

Chuỗi RAW Python được tạo bằng tiền tố một chuỗi theo nghĩa đen với ‘r, hoặc‘ r. Chuỗi thô Python coi Backslash (\) là một ký tự theo nghĩa đen. Điều này rất hữu ích khi chúng tôi muốn có một chuỗi chứa dấu gạch chéo ngược và don không muốn nó được coi là một nhân vật thoát.

Chuỗi Raw Python

Hãy nói rằng chúng tôi muốn tạo một chuỗi hi \ nhello trong Python. Nếu chúng ta cố gắng gán nó cho một chuỗi bình thường, \ n sẽ được coi là một dòng mới.Hi\nHello in python. If we try to assign it to a normal string, the \n will be treated as a new line.

s = 'Hi\nHello'
print(s)

Đầu ra:

Hi
Hello

Hãy cùng xem chuỗi RAW giúp chúng ta coi việc đánh dấu dấu gạch chéo ngược như một nhân vật bình thường như thế nào.

raw_s = r'Hi\nHello'
print(raw_s)

Đầu ra:

r'(?i:\bsys\.user_catalog\b)'
6 Hãy để xem một ví dụ khác trong đó nhân vật theo sau là dấu gạch chéo ngược không có ý nghĩa đặc biệt nào.

>>> s = 'Hi\xHello'
  File "", line 1
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \xXX escape

Chúng tôi đã gặp lỗi vì Python không biết cách giải mã ‘\ x, vì nó không có ý nghĩa đặc biệt nào. Hãy để xem cách chúng ta có thể tạo cùng một chuỗi bằng các chuỗi thô.

r'(?i:\bsys\.user_catalog\b)'
0

Nếu bạn đang ở trên bảng điều khiển Python và tạo một chuỗi thô như dưới đây.

r'(?i:\bsys\.user_catalog\b)'
1

Don Tiết bị nhầm lẫn với đầu ra có hai dấu gạch chéo ngược. Nó chỉ để hiển thị nó như một chuỗi Python bình thường, trong đó dấu gạch chéo ngược đang bị thoát ra.

Chuỗi và trích dẫn Python Raw

Khi một dấu gạch chéo ngược được theo sau bởi một trích dẫn trong một chuỗi thô, nó đã thoát ra. Tuy nhiên, dấu gạch chéo ngược cũng vẫn còn trong kết quả. Vì tính năng này, chúng tôi có thể tạo ra một chuỗi RAW của dấu gạch chéo ngược. Ngoài ra, một chuỗi thô có thể có một số ít các dấu gạch chéo ngược ở cuối. Một số chuỗi thô không hợp lệ là:

r'(?i:\bsys\.user_catalog\b)'
2

Hãy cùng xem xét một số ví dụ chuỗi thô hợp lệ với các trích dẫn.

r'(?i:\bsys\.user_catalog\b)'
3

Output:

r'(?i:\bsys\.user_catalog\b)'
4

Đó là tất cả để giới thiệu nhanh chuỗi Raw Python.

Bạn có thể kiểm tra toàn bộ tập lệnh Python và nhiều ví dụ về Python từ Kho lưu trữ GitHub của chúng tôi.

Muốn tìm hiểu thêm? Tham gia cộng đồng DigitalOcean!

Làm thế nào để bạn đọc một chuỗi là thô trong Python?

Làm cách nào để đọc một tệp văn bản dưới dạng chuỗi trong Python?

Làm thế nào để bạn đọc một chuỗi là thô trong Python?

Làm cách nào để đọc một tệp văn bản dưới dạng chuỗi trong Python?. The string returned by repr() has ' at the beginning and the end. Using slices, you can get the string equivalent to the raw string.

Làm cách nào để đọc một tệp văn bản dưới dạng chuỗi trong Python?

Làm thế nào để bạn chuyển đổi một biến chuỗi thành một chuỗi thô trong Python?.

\ R làm gì trong Python?

Trong khi đọc các dòng đó, tôi muốn giá trị là một chuỗi thô (chưa được phân giải), có nghĩa là, trong bộ nhớ, dòng

thay vì

Làm thế nào để bạn chuyển đổi một biến chuỗi thành một chuỗi thô trong Python?

\ R làm gì trong Python?when you prefix a string with the letter r or R such as r'...' and R'...' , that string becomes a raw string. Unlike a regular string, a raw string treats the backslashes ( \ ) as literal characters.

\ R làm gì trong Python?

Trong khi đọc các dòng đó, tôi muốn giá trị là một chuỗi thô (chưa được phân giải), có nghĩa là, trong bộ nhớ, dòngcarriage return. Conversely, prefixing a special character with "\" turns it into an ordinary character.