Hướng dẫn python file current position - tệp python vị trí hiện tại

5

Show

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Tôi muốn thay đổi vị trí tệp từ vị trí tệp hiện tại sang vị trí khác. Đưa vị trí tệp hiện tại của tôi là 13 và tôi muốn thay đổi vị trí tệp này thành 18. Tôi sử dụng phương thức

#!/usr/bin/python

print "Python is really a great language,", "isn't it?"
5 như sau nhưng nó hiển thị một số lỗi.

Code:-

fileobj = open("intro.txt","r");
content = fileobj.read(13);
pos = fileobj.tell();
print("Current position : ",pos);
fileobj.seek(5,1); #Change position from current position to next five character.

Lỗi

fileobj.seek(5,1);

io.UnsupportedOperation: can't do nonzero cur-relative seeks

Tôi sử dụng Python 3.4.3. Làm thế nào tôi có thể làm điều này?

Hỏi ngày 13 tháng 8 năm 2015 lúc 4:02Aug 13, 2015 at 4:02

Hướng dẫn python file current position - tệp python vị trí hiện tại

0

Mã của bạn hoạt động trong Python 2, nhưng không phải trong 3. Bạn phải mở tệp dưới dạng nhị phân:

fileobj = open("intro.txt","rb");

Đã trả lời ngày 13 tháng 8 năm 2015 lúc 4:11Aug 13, 2015 at 4:11

Hướng dẫn python file current position - tệp python vị trí hiện tại

CDARKECDARKEcdarke

41.1K7 Huy hiệu vàng79 Huy hiệu bạc81 Huy hiệu đồng7 gold badges79 silver badges81 bronze badges

1


Tất cả các tệp được chứa trong các thư mục khác nhau và Python cũng không có vấn đề gì khi xử lý chúng. Mô -đun HĐH có một số phương pháp giúp bạn tạo, xóa và thay đổi thư mục.

Phương thức mkdir ()

Bạn có thể sử dụng phương thức mkdir () của mô -đun HĐH để tạo thư mục trong thư mục hiện tại. Bạn cần cung cấp một đối số cho phương pháp này có chứa tên của thư mục sẽ được tạo.

#!/usr/bin/python

print "Python is really a great language,", "isn't it?"

Sau đây là ví dụ để tạo một bài kiểm tra thư mục trong thư mục hiện tại -

Python is really a great language, isn't it?

Phương thức chdir ()

Bạn có thể sử dụng phương thức chdir () để thay đổi thư mục hiện tại. Phương thức chdir () có một đối số, đó là tên của thư mục mà bạn muốn tạo thư mục hiện tại.

  • raw_input
  • Sau đây là ví dụ để đi vào thư mục "/home/newdir" -

Phương thức getcwd ()

Phương thức GetCwd () hiển thị thư mục làm việc hiện tại.

#!/usr/bin/python

str = raw_input("Enter your input: ")
print "Received input is : ", str

Sau đây là ví dụ để đưa ra thư mục hiện tại -

Enter your input: Hello Python
Received input is :  Hello Python

Phương thức rmdir ()

Phương thức rmdir () xóa thư mục, được truyền dưới dạng đối số trong phương thức.

#!/usr/bin/python

str = input("Enter your input: ")
print "Received input is : ", str

Trước khi xóa một thư mục, tất cả các nội dung trong đó nên được xóa.

Enter your input: [x*5 for x in range(2,10,2)]
Recieved input is :  [10, 20, 30, 40]

#!/usr/bin/python print "Python is really a great language,", "isn't it?" 3

Sau đây là ví dụ để xóa thư mục "/tmp/test". Nó được yêu cầu đưa ra tên đủ điều kiện của thư mục, nếu không nó sẽ tìm kiếm thư mục đó trong thư mục hiện tại.

Phương pháp liên quan đến tệp & thư mụcfile object.

Có ba nguồn quan trọng, cung cấp một loạt các phương thức tiện ích để xử lý và thao tác các tệp & thư mục trên các hệ điều hành Windows và UNIX. Chúng như sau -

Phương thức đối tượng tệp: Đối tượng tệp cung cấp các chức năng để thao tác các tệp.file object, which would be utilized to call other support methods associated with it.

Cú pháp

file object = open(file_name [, access_mode][, buffering])

Đây là chi tiết tham số -

  • File_Name - đối số File_Name là giá trị chuỗi chứa tên của tệp mà bạn muốn truy cập. − The file_name argument is a string value that contains the name of the file that you want to access.

  • access_mode - access_mode xác định chế độ mà tệp phải được mở, tức là, đọc, ghi, nối, v.v. Một danh sách đầy đủ các giá trị có thể được đưa ra dưới đây trong bảng. Đây là tham số tùy chọn và chế độ truy cập tệp mặc định được đọc (r). − The access_mode determines the mode in which the file has to be opened, i.e., read, write, append, etc. A complete list of possible values is given below in the table. This is optional parameter and the default file access mode is read (r).

  • Bộ đệm - Nếu giá trị bộ đệm được đặt thành 0, không có bộ đệm nào diễn ra. Nếu giá trị bộ đệm là 1, bộ đệm dòng được thực hiện trong khi truy cập một tệp. Nếu bạn chỉ định giá trị bộ đệm là một số nguyên lớn hơn 1, thì hành động đệm được thực hiện với kích thước bộ đệm được chỉ định. Nếu âm, kích thước bộ đệm là mặc định hệ thống (hành vi mặc định). − If the buffering value is set to 0, no buffering takes place. If the buffering value is 1, line buffering is performed while accessing a file. If you specify the buffering value as an integer greater than 1, then buffering action is performed with the indicated buffer size. If negative, the buffer size is the system default(default behavior).

Dưới đây là danh sách các chế độ khác nhau của việc mở tệp -

Sr.No.Chế độ & Mô tả
1

r

Mở một tập tin chỉ để đọc. Con trỏ tệp được đặt ở đầu tệp. Đây là chế độ mặc định.

2

RB

Mở một tập tin chỉ đọc ở định dạng nhị phân. Con trỏ tệp được đặt ở đầu tệp. Đây là chế độ mặc định.

3

r+

Mở một tập tin cho cả đọc và viết. Con trỏ tập tin được đặt ở đầu tệp.

4

rb+

Mở một tập tin cho cả đọc và viết ở định dạng nhị phân. Con trỏ tập tin được đặt ở đầu tệp.

5

w

Mở một tập tin chỉ để viết. Ghi đè tệp nếu tệp tồn tại. Nếu tệp không tồn tại, hãy tạo một tệp mới để viết.

6

WB

Mở một tập tin chỉ để viết ở định dạng nhị phân. Ghi đè tệp nếu tệp tồn tại. Nếu tệp không tồn tại, hãy tạo một tệp mới để viết.

7

w+

Mở một tập tin cho cả viết và đọc. Ghi đè tệp hiện có nếu tệp tồn tại. Nếu tệp không tồn tại, hãy tạo một tệp mới để đọc và ghi.

8

wb+

Mở một tập tin cho cả viết và đọc ở định dạng nhị phân. Ghi đè tệp hiện có nếu tệp tồn tại. Nếu tệp không tồn tại, hãy tạo một tệp mới để đọc và ghi.

9

một

Mở một tập tin để nối thêm. Con trỏ tệp ở cuối tệp nếu tệp tồn tại. Đó là, tệp ở chế độ phụ lục. Nếu tệp không tồn tại, nó sẽ tạo một tệp mới để viết.

10

AB

Mở một tập tin để nối thêm ở định dạng nhị phân. Con trỏ tệp ở cuối tệp nếu tệp tồn tại. Đó là, tệp ở chế độ phụ lục. Nếu tệp không tồn tại, nó sẽ tạo một tệp mới để viết.

11

a+

Mở một tập tin cho cả việc thêm và đọc. Con trỏ tệp ở cuối tệp nếu tệp tồn tại. Tệp mở trong chế độ phụ lục. Nếu tệp không tồn tại, nó sẽ tạo một tệp mới để đọc và ghi.

12

ab+

Mở một tập tin cho cả việc thêm và đọc ở định dạng nhị phân. Con trỏ tệp ở cuối tệp nếu tệp tồn tại. Tệp mở trong chế độ phụ lục. Nếu tệp không tồn tại, nó sẽ tạo một tệp mới để đọc và ghi.

Các thuộc tính đối tượng tệp

Khi một tệp được mở và bạn có một đối tượng tệp, bạn có thể nhận được nhiều thông tin liên quan đến tệp đó.

Dưới đây là danh sách tất cả các thuộc tính liên quan đến đối tượng tệp -

Sr.No.Thuộc tính & Mô tả
1

file.closed

Trả về đúng nếu tệp được đóng, sai nếu không.

2

file.mode

Trả về chế độ truy cập mà tệp đã được mở.

3

file.name

Trả về tên của tập tin.

4

file.softspace

Trả về sai nếu không gian yêu cầu rõ ràng với in, đúng nếu không.

Thí dụ

fileobj.seek(5,1);

io.UnsupportedOperation: can't do nonzero cur-relative seeks
0

Điều này tạo ra kết quả sau -

fileobj.seek(5,1);

io.UnsupportedOperation: can't do nonzero cur-relative seeks
1

Phương thức đóng ()

Phương thức đóng () của một đối tượng tệp sẽ xóa bất kỳ thông tin bất thành văn nào và đóng đối tượng tệp, sau đó không còn viết nữa.

Python tự động đóng một tệp khi đối tượng tham chiếu của tệp được chỉ định lại vào một tệp khác. Đó là một thực tế tốt để sử dụng phương thức đóng () để đóng một tệp.

Cú pháp

fileobj.seek(5,1);

io.UnsupportedOperation: can't do nonzero cur-relative seeks
2

Thí dụ

fileobj.seek(5,1);

io.UnsupportedOperation: can't do nonzero cur-relative seeks
3

Điều này tạo ra kết quả sau -

fileobj.seek(5,1);

io.UnsupportedOperation: can't do nonzero cur-relative seeks
4

Phương thức đóng ()

Phương thức đóng () của một đối tượng tệp sẽ xóa bất kỳ thông tin bất thành văn nào và đóng đối tượng tệp, sau đó không còn viết nữa.

Python tự động đóng một tệp khi đối tượng tham chiếu của tệp được chỉ định lại vào một tệp khác. Đó là một thực tế tốt để sử dụng phương thức đóng () để đóng một tệp.

Cú pháp

Đọc và ghi tệp

Cú pháp

fileobj.seek(5,1);

io.UnsupportedOperation: can't do nonzero cur-relative seeks
5

Đọc và ghi tệp

Thí dụ

fileobj.seek(5,1);

io.UnsupportedOperation: can't do nonzero cur-relative seeks
6

Điều này tạo ra kết quả sau -

fileobj.seek(5,1);

io.UnsupportedOperation: can't do nonzero cur-relative seeks
7

Phương thức đóng ()

Phương thức đóng () của một đối tượng tệp sẽ xóa bất kỳ thông tin bất thành văn nào và đóng đối tượng tệp, sau đó không còn viết nữa.

Cú pháp

fileobj.seek(5,1);

io.UnsupportedOperation: can't do nonzero cur-relative seeks
8

Ở đây, tham số được truyền là số byte sẽ được đọc từ tệp đã mở. Phương pháp này bắt đầu đọc từ đầu tệp và nếu bị thiếu, thì nó cố gắng đọc càng nhiều càng tốt, có thể cho đến khi kết thúc tệp.

Thí dụ

Hãy lấy một tập tin foo.txt, mà chúng tôi đã tạo ở trên.

fileobj.seek(5,1);

io.UnsupportedOperation: can't do nonzero cur-relative seeks
9

Điều này tạo ra kết quả sau -

fileobj = open("intro.txt","rb");
0

Vị trí tập tin

Phương thức Tell () cho bạn biết vị trí hiện tại trong tệp; Nói cách khác, lần đọc hoặc ghi tiếp theo sẽ xảy ra ở nhiều byte từ đầu tệp.

Phương thức Seek (Offset [, From]) thay đổi vị trí tệp hiện tại. Đối số bù cho biết số byte sẽ được di chuyển. Từ đối số chỉ định vị trí tham chiếu từ nơi các byte sẽ được di chuyển.

Nếu từ được đặt thành 0, nó có nghĩa là sử dụng đầu của tệp làm vị trí tham chiếu và 1 có nghĩa là sử dụng vị trí hiện tại làm vị trí tham chiếu và nếu nó được đặt thành 2 thì đầu của tệp sẽ được lấy làm vị trí tham chiếu .

Thí dụ

Hãy lấy một tập tin foo.txt, mà chúng tôi đã tạo ở trên.

fileobj = open("intro.txt","rb");
1

Điều này tạo ra kết quả sau -

fileobj = open("intro.txt","rb");
2

Vị trí tập tin

Phương thức Tell () cho bạn biết vị trí hiện tại trong tệp; Nói cách khác, lần đọc hoặc ghi tiếp theo sẽ xảy ra ở nhiều byte từ đầu tệp.os module provides methods that help you perform file-processing operations, such as renaming and deleting files.

Phương thức Seek (Offset [, From]) thay đổi vị trí tệp hiện tại. Đối số bù cho biết số byte sẽ được di chuyển. Từ đối số chỉ định vị trí tham chiếu từ nơi các byte sẽ được di chuyển.

Nếu từ được đặt thành 0, nó có nghĩa là sử dụng đầu của tệp làm vị trí tham chiếu và 1 có nghĩa là sử dụng vị trí hiện tại làm vị trí tham chiếu và nếu nó được đặt thành 2 thì đầu của tệp sẽ được lấy làm vị trí tham chiếu .

Hãy để chúng tôi lấy một tập tin foo.txt, mà chúng tôi đã tạo ở trên.

Cú pháp

fileobj = open("intro.txt","rb");
3

Thí dụ

Hãy lấy một tập tin foo.txt, mà chúng tôi đã tạo ở trên.

fileobj = open("intro.txt","rb");
4

Điều này tạo ra kết quả sau -

Vị trí tập tin

Cú pháp

fileobj = open("intro.txt","rb");
5

Phương thức Tell () cho bạn biết vị trí hiện tại trong tệp; Nói cách khác, lần đọc hoặc ghi tiếp theo sẽ xảy ra ở nhiều byte từ đầu tệp.

Phương thức Seek (Offset [, From]) thay đổi vị trí tệp hiện tại. Đối số bù cho biết số byte sẽ được di chuyển. Từ đối số chỉ định vị trí tham chiếu từ nơi các byte sẽ được di chuyển.

fileobj = open("intro.txt","rb");
6

Nếu từ được đặt thành 0, nó có nghĩa là sử dụng đầu của tệp làm vị trí tham chiếu và 1 có nghĩa là sử dụng vị trí hiện tại làm vị trí tham chiếu và nếu nó được đặt thành 2 thì đầu của tệp sẽ được lấy làm vị trí tham chiếu .

Hãy để chúng tôi lấy một tập tin foo.txt, mà chúng tôi đã tạo ở trên.os module has several methods that help you create, remove, and change directories.

Đổi tên và xóa các tệp

Mô-đun OS Python cung cấp các phương thức giúp bạn thực hiện các hoạt động xử lý tệp, chẳng hạn như đổi tên và xóa các tệp.os module to create directories in the current directory. You need to supply an argument to this method which contains the name of the directory to be created.

Cú pháp

fileobj = open("intro.txt","rb");
7

Thí dụ

Hãy lấy một tập tin foo.txt, mà chúng tôi đã tạo ở trên.

fileobj = open("intro.txt","rb");
8

Điều này tạo ra kết quả sau -

Vị trí tập tin

Cú pháp

fileobj = open("intro.txt","rb");
9

Thí dụ

Hãy lấy một tập tin foo.txt, mà chúng tôi đã tạo ở trên.

#!/usr/bin/python

print "Python is really a great language,", "isn't it?"
0

Điều này tạo ra kết quả sau -

Vị trí tập tin

Cú pháp

#!/usr/bin/python

print "Python is really a great language,", "isn't it?"
1

Thí dụ

Hãy lấy một tập tin foo.txt, mà chúng tôi đã tạo ở trên.

#!/usr/bin/python

print "Python is really a great language,", "isn't it?"
2

Điều này tạo ra kết quả sau -

Vị trí tập tin

Phương thức Tell () cho bạn biết vị trí hiện tại trong tệp; Nói cách khác, lần đọc hoặc ghi tiếp theo sẽ xảy ra ở nhiều byte từ đầu tệp.

Cú pháp

Phương thức Seek (Offset [, From]) thay đổi vị trí tệp hiện tại. Đối số bù cho biết số byte sẽ được di chuyển. Từ đối số chỉ định vị trí tham chiếu từ nơi các byte sẽ được di chuyển.

Thí dụ

Hãy lấy một tập tin foo.txt, mà chúng tôi đã tạo ở trên.

#!/usr/bin/python

print "Python is really a great language,", "isn't it?"
4

Điều này tạo ra kết quả sau -

Vị trí tập tin

  • Phương thức Tell () cho bạn biết vị trí hiện tại trong tệp; Nói cách khác, lần đọc hoặc ghi tiếp theo sẽ xảy ra ở nhiều byte từ đầu tệp.

  • Phương thức Seek (Offset [, From]) thay đổi vị trí tệp hiện tại. Đối số bù cho biết số byte sẽ được di chuyển. Từ đối số chỉ định vị trí tham chiếu từ nơi các byte sẽ được di chuyển.