Hướng dẫn how do i request a file path in python? - làm cách nào để yêu cầu đường dẫn tệp trong python?

Tôi đang nhận được một tệp đăng từ một tệp:

file = request.post['ufile']

Tôi muốn có được con đường. Làm thế nào tôi có thể nhận được nó?

Hướng dẫn how do i request a file path in python? - làm cách nào để yêu cầu đường dẫn tệp trong python?

HALFER

19.7K17 Huy hiệu vàng92 Huy hiệu bạc179 Huy hiệu đồng17 gold badges92 silver badges179 bronze badges

hỏi ngày 15 tháng 7 năm 2011 lúc 6:07Jul 15, 2011 at 6:07

RajasekarrajasekarRajasekar

Huy hiệu vàng 18K3232 gold badges101 silver badges136 bronze badges

Bạn phải sử dụng từ điển request.FILES.

Kiểm tra tài liệu chính thức về đối tượng UploadedFile, bạn có thể sử dụng thuộc tính

upload = request.FILES['ufile']
path = upload.temporary_file_path
0, nhưng hãy cẩn thận rằng chỉ các tệp được tải lên để đĩa hiển thị nó (nghĩa là thông thường, khi sử dụng trình xử lý tải lên
upload = request.FILES['ufile']
path = upload.temporary_file_path
1).

upload = request.FILES['ufile']
path = upload.temporary_file_path

Tuy nhiên, trong trường hợp bình thường, bạn muốn sử dụng trực tiếp trình xử lý tệp:

upload = request.FILES['ufile']
content = upload.read()  # For small files
# ... or ...
for chunk in upload.chunks():
    do_somthing_with_chunk(chunk)  # For bigger files

Đã trả lời ngày 15 tháng 7 năm 2011 lúc 6:21Jul 15, 2011 at 6:21

Bạn nên sử dụng

upload = request.FILES['ufile']
path = upload.temporary_file_path
2

Bạn sẽ nhận được như thế này

upload = request.FILES['ufile']
path = upload.temporary_file_path
3

Và sử dụng

upload = request.FILES['ufile']
path = upload.temporary_file_path
4, tệp tải lên của bạn phải lớn hơn 2,5m.

Nếu bạn muốn thay đổi điều này, hãy xem cài đặt tải lên tệp

Đã trả lời ngày 10 tháng 5 năm 2017 lúc 11:32May 10, 2017 at 11:32

Hướng dẫn how do i request a file path in python? - làm cách nào để yêu cầu đường dẫn tệp trong python?

暮零天 晨暮零天暮零天晨

711 Huy hiệu bạc7 Huy hiệu đồng1 silver badge7 bronze badges

Chúng tôi không thể nhận được đường dẫn tệp từ yêu cầu bài đăng, chỉ tên tệp, vì Flask không có quyền truy cập hệ thống tệp. Nếu bạn cần lấy tệp và thực hiện một số hoạt động trên đó thì bạn có thể thử tạo thư mục TEMP Lưu tệp ở đó, bạn cũng có thể nhận đường dẫn.

import tempfile
import shutil

dirpath = tempfile.mkdtemp()
# perform some operations if needed
shutil.rmtree(dirpath) # remove the  temp directory

Đã trả lời ngày 25 tháng 5 lúc 16:27May 25 at 16:27

Hướng dẫn how do i request a file path in python? - làm cách nào để yêu cầu đường dẫn tệp trong python?

Trên trang này: Open (), Path Path, CWD ('Thư mục làm việc hiện tại'), tiền tố R 'RAW String', OS.GetCwd (), Os.Chdir ().

Tham khảo một tệp có đường dẫn và tên đầy đủ

Như đã thấy trong các hướng dẫn #12 và #13, bạn có thể tham khảo một tệp cục bộ trong Python bằng cách sử dụng đường dẫn đầy đủ của tệp và tên tệp. Dưới đây, bạn đang mở một tệp để đọc:

& nbsp;
>>> myfile = open('C:/Users/narae/Desktop/alice.txt')   # Windows
>>> mytxt = myfile.read()
>>> myfile.close()

& nbsp;
>>> myfile = open('C:/Users/narae/Desktop/alice.txt')   # Windows
>>> mytxt = myfile.read()
>>> myfile.close()

>>> myfile = open('/Users/narae/Desktop/alice.txt')     # Mac and Linux
>>> mytxt = myfile.read()
>>> myfile.close()

Tham khảo một tệp trong Windows

Trong Windows, có một vài cách bổ sung để tham khảo một tệp. Đó là bởi vì đường dẫn tập tin Windows sử dụng dấu gạch chéo ngược "\" thay vì chém. Python cho phép sử dụng cả hai trong hệ thống Windows, nhưng có một vài cạm bẫy cần chú ý. Để tổng hợp chúng:
  • Python cho phép bạn sử dụng dấu gạch chéo kiểu OS-X/Linux "/" ngay cả trong Windows. Do đó, bạn có thể gọi tệp là 'C: /Users/narae/desktop/alice.txt'. KHUYẾN KHÍCH.RECOMMENDED.
  • Nếu sử dụng Backslash, vì nó là một nhân vật đặc biệt trong Python, bạn phải nhớ thoát khỏi mọi trường hợp: 'C: \\ users \\ narae \\ Desktop \\ alice.txt'backslash, because it is a special character in Python, you must remember to escape every instance: 'C:\\Users\\narae\\Desktop\\alice.txt'
  • Ngoài ra, bạn có thể tiền tố toàn bộ chuỗi tên tệp với điểm đánh dấu RawString "r": r'c: \ users \ narae \ Desktop \ alice.txt '. Bằng cách đó, mọi thứ trong chuỗi được hiểu là một nhân vật theo nghĩa đen và bạn không phải thoát khỏi mọi dấu gạch chéo ngược.rawstring marker "r": r'C:\Users\narae\Desktop\alice.txt'. That way, everything in the string is interpreted as a literal character, and you don't have to escape every backslash.

Phím tắt tên tệp và CWD (thư mục làm việc hiện tại)

Vì vậy, sử dụng đường dẫn thư mục đầy đủ và tên tệp luôn hoạt động; Bạn nên sử dụng phương pháp này. Tuy nhiên, bạn có thể chỉ thấy các tệp được gọi bằng tên của chúng, ví dụ: 'Alice.txt' trong Python. Nó được thực hiện như thế nào?

Khái niệm về thư mục làm việc hiện tại (CWD) là rất quan trọng ở đây. Bạn có thể nghĩ về nó như là thư mục Python của bạn đang hoạt động bên trong vào lúc này. Cho đến nay chúng tôi đã sử dụng đường dẫn tuyệt đối, bắt đầu từ thư mục trên cùng. Nhưng nếu tham chiếu tệp của bạn không bắt đầu từ đầu (ví dụ:Current Working Directory (CWD) is crucial here. You can think of it as the folder your Python is operating inside at the moment. So far we have been using the absolute path, which begins from the topmost directory. But if your file reference does not start from the top (e.g.,

'Alice.txt'

Thì

'ling1330/alice.txt'

), Python giả định rằng nó bắt đầu trong CWD (một "đường dẫn tương đối").relative path").

Điều này có nghĩa là một tham chiếu chỉ tên sẽ chỉ thành công khi tệp nằm trong CWD của bạn. Nhưng hãy nhớ rằng CWD của bạn có thể thay đổi. Ngoài ra, Python của bạn có cài đặt CWD ban đầu khác nhau tùy thuộc vào việc bạn đang làm việc với tập lệnh Python hay trong môi trường vỏ.

  • Trong tập lệnh Python: Khi bạn thực thi tập lệnh của mình, CWD của bạn được đặt thành thư mục nơi tập lệnh của bạn. Do đó, bạn có thể tham khảo một tệp trong tập lệnh bằng tên của nó chỉ với điều kiện tệp và tập lệnh nằm trong cùng một thư mục. Một ví dụ:Python script:
    When you execute your script, your CWD is set to the directory where your script is. Therefore, you can refer to a file in a script by its name only provided that the file and the script are in the same directory. An example:

    myfile = open('alice.txt')  # alice.txt is in the same dir as foo.py
    mytxt = myfile.read()
    myfile.close()
    foo.py 
    

  • Trong vỏ Python: Trong vỏ của bạn, cài đặt CWD ban đầu thay đổi theo hệ thống. Trong Windows, vị trí mặc định thường là 'C:/Tệp chương trình (x86)/python35-32' (không bất tiện-xem trang "cấu hình cơ bản" này hoặc Câu hỏi thường gặp về cách thay đổi nó). Trong OS-X, thường là '/người dùng/tên người dùng/tài liệu' trong đó tên người dùng là ID người dùng của bạn. (Người dùng Mac sẽ xem Câu hỏi thường gặp này về cách thay đổi cài đặt của bạn.)Python shell:
    In your shell, the initial CWD setting varies by system. In Windows, the default location is often 'C:/program Files (x86)/Python35-32' (which is inconvenient -- see this "Basic Configurations" page or this FAQ for how to change it). In OS-X, it is usually '/Users/username/Documents' where username is your user ID. (Mac users should see this FAQ for how to change your setting.) Unless your file happens to be in your CWD, you have two options:
    1. Thay đổi CWD của bạn thành thư mục của tệp hoặc
    2. Sao chép hoặc chuyển tập tin của bạn vào CWD của bạn. (Không được khuyến nghị, vì CWD của Shell của bạn có thể thay đổi.)
Xem ảnh chụp màn hình này và phần tiếp theo để biết cách làm việc với cài đặt CWD của bạn trong vỏ Python.

Tìm kiếm và thay đổi CWD

Hệ điều hành Module Python cung cấp các tiện ích để hiển thị và sửa đổi thư mục làm việc hiện tại của bạn. Dưới đây minh họa cách tìm cwd của bạn (.getcwd ()) và thay đổi nó thành một thư mục khác (.chdir ()). Dưới đây là một ví dụ cho HĐH Windows:

& nbsp;
>>> import os
>>> os.getcwd()
'D:\\Lab'
>>> os.chdir('scripts/gutenberg') # relative path: scripts dir is under Lab
>>> os.getcwd()
'D:\\Lab\\scripts\\gutenberg'
>>> os.chdir(r'D:\Corpora\corpus_samples') # absolute path, using \ and r prefix
>>> os.getcwd()
'D:\\Corpora\\corpus_samples'

Lưu ý rằng CWD được trình thông dịch Python trả về ở định dạng đường dẫn tệp Windows: nó sử dụng dấu gạch chéo ngược "\" cho dấu phân cách thư mục và mọi trường hợp được thoát ra. Mặc dù Python cho phép người dùng Windows sử dụng kiểu Linux/OS-X "/" trong các đường dẫn tệp, nhưng bên trong nó sử dụng định dạng đường dẫn tệp bản địa OS.