Python tải xuống tệp Excel từ SharePoint

Có ai đã viết thành công Python Script chạy trong Power Bi thay thế các bước trong Power Query để nhập bảng tính sharepoint chưa?

Tôi đã thử 2 tập lệnh khác nhau

# 'dataset' holds the input data for this script
import pandas as pd
#pd.read_excel('https://orgname.sharepoint.com/teams/MyTeam/Shared Documents/General/Security/Metrics/myspreadsheet.xlsx', sheet_name=[8]) # load ws6

# 'dataset' holds the input data for this script
import pandas as pd

# load example
df1 = pd.read_excel('https://orgname.sharepoint.com/teams/MyTeam/Shared Documents/General/Security/Metrics/myspreadsheet.xlsx',
# get sheets 2 through 8; rows 1-2 are the headers
sheet_name=[2, 3, 4, 5, 6, 7, 8], header=[1, 2])

Đây là mã mẫu cơ bản mà tôi sử dụng để tải xuống từ điểm chia sẻ công việc của mình. Tôi nghĩ mã bạn đã đăng sẽ hoạt động

import requests

from getpass import getpass
from requests_ntlm import HttpNtlmAuth

url = "https://share.something.com/path/file.xlsx"

session = requests.Session()
session.verify = False

username = input("Enter your username: ")
password = getpass("Enter your password: ")

session.auth = HttpNtlmAuth(username, password)
response = session.get(url)

with open(output.xlsx, wb) as f:
    f.write(response.content)

Giải pháp liên quan

Python – Trích xuất phần mở rộng từ tên tệp trong Python

Đúng. Sử dụng

>>> import os
>>> filename, file_extension = os.path.splitext('/path/to/somefile.ext')
>>> filename
'/path/to/somefile'
>>> file_extension
'.ext'
4(xem hoặc )

>>> import os
>>> filename, file_extension = os.path.splitext('/path/to/somefile.ext')
>>> filename
'/path/to/somefile'
>>> file_extension
'.ext'

Không giống như hầu hết các nỗ lực tách chuỗi thủ công,

>>> import os
>>> filename, file_extension = os.path.splitext('/path/to/somefile.ext')
>>> filename
'/path/to/somefile'
>>> file_extension
'.ext'
4 sẽ coi chính xác
>>> import os
>>> filename, file_extension = os.path.splitext('/path/to/somefile.ext')
>>> filename
'/path/to/somefile'
>>> file_extension
'.ext'
6 là không có phần mở rộng thay vì có phần mở rộng
>>> import os
>>> filename, file_extension = os.path.splitext('/path/to/somefile.ext')
>>> filename
'/path/to/somefile'
>>> file_extension
'.ext'
7 và nó sẽ coi
>>> import os
>>> filename, file_extension = os.path.splitext('/path/to/somefile.ext')
>>> filename
'/path/to/somefile'
>>> file_extension
'.ext'
8 là không có phần mở rộng thay vì có phần mở rộng
>>> import os
>>> filename, file_extension = os.path.splitext('/path/to/somefile.ext')
>>> filename
'/path/to/somefile'
>>> file_extension
'.ext'
8

>>> os.path.splitext('/a/b.c/d')
('/a/b.c/d', '')
>>> os.path.splitext('.bashrc')
('.bashrc', '')

Python – Cách nhập các tệp Python khác

Có nhiều cách để nhập tệp python, tất cả đều có ưu và nhược điểm của chúng

Đừng vội vàng chọn chiến lược nhập đầu tiên phù hợp với bạn, nếu không bạn sẽ phải viết lại cơ sở mã sau này khi bạn thấy nó không đáp ứng nhu cầu của mình

Tôi sẽ bắt đầu giải thích ví dụ #1 đơn giản nhất, sau đó tôi sẽ chuyển sang ví dụ #7 chuyên nghiệp và mạnh mẽ nhất

Ví dụ 1, Nhập mô-đun python bằng trình thông dịch python

  1. Đặt cái này vào /home/el/foo/fox. py

    def what_does_the_fox_say():
      print("vixens cry")
    
  2. Vào trình thông dịch python

    el@apollo:/home/el/foo$ python
    Python 2.7.3 (default, Sep 26 2013, 20:03:06) 
    >>> import fox
    >>> fox.what_does_the_fox_say()
    vixens cry
    >>> 
    

    Bạn đã nhập fox thông qua trình thông dịch python, gọi hàm python

    >>> os.path.splitext('/a/b.c/d')
    ('/a/b.c/d', '')
    >>> os.path.splitext('.bashrc')
    ('.bashrc', '')
    
    0 từ bên trong fox. py

Ví dụ 2, Sử dụng

>>> os.path.splitext('/a/b.c/d')
('/a/b.c/d', '')
>>> os.path.splitext('.bashrc')
('.bashrc', '')
1 hoặc (
>>> os.path.splitext('/a/b.c/d')
('/a/b.c/d', '')
>>> os.path.splitext('.bashrc')
('.bashrc', '')
2 trong Python 3) trong tập lệnh để thực thi tệp python khác tại chỗ

  1. Đặt cái này vào /home/el/foo2/mylib. py

    def moobar():
      print("hi")
    
  2. Đặt cái này vào /home/el/foo2/main. py

    execfile("/home/el/foo2/mylib.py")
    moobar()
    
  3. chạy tập tin

    el@apollo:/home/el/foo$ python main.py
    hi
    

    Chức năng moobar được nhập từ mylib. py và có sẵn trong main. py

Ví dụ 3, Sử dụng từ. nhập khẩu. chức năng

  1. Đặt cái này vào /home/el/foo3/chekov. py

    def question():
      print "where are the nuclear wessels?"
    
  2. Đặt cái này vào /home/el/foo3/main. py

    import requests
    
    from getpass import getpass
    from requests_ntlm import HttpNtlmAuth
    
    url = "https://share.something.com/path/file.xlsx"
    
    session = requests.Session()
    session.verify = False
    
    username = input("Enter your username: ")
    password = getpass("Enter your password: ")
    
    session.auth = HttpNtlmAuth(username, password)
    response = session.get(url)
    
    with open(output.xlsx, wb) as f:
        f.write(response.content)
    
    0
  3. Chạy nó như thế này

    import requests
    
    from getpass import getpass
    from requests_ntlm import HttpNtlmAuth
    
    url = "https://share.something.com/path/file.xlsx"
    
    session = requests.Session()
    session.verify = False
    
    username = input("Enter your username: ")
    password = getpass("Enter your password: ")
    
    session.auth = HttpNtlmAuth(username, password)
    response = session.get(url)
    
    with open(output.xlsx, wb) as f:
        f.write(response.content)
    
    1

    Nếu bạn đã định nghĩa các chức năng khác trong chekov. py, chúng sẽ không có sẵn trừ khi bạn

    >>> os.path.splitext('/a/b.c/d')
    ('/a/b.c/d', '')
    >>> os.path.splitext('.bashrc')
    ('.bashrc', '')
    
    3

Ví dụ 4, Nhập riaa. py nếu nó ở một vị trí tệp khác với nơi nó được nhập

  1. Đặt cái này vào /home/el/foo4/stuff/riaa. py

    import requests
    
    from getpass import getpass
    from requests_ntlm import HttpNtlmAuth
    
    url = "https://share.something.com/path/file.xlsx"
    
    session = requests.Session()
    session.verify = False
    
    username = input("Enter your username: ")
    password = getpass("Enter your password: ")
    
    session.auth = HttpNtlmAuth(username, password)
    response = session.get(url)
    
    with open(output.xlsx, wb) as f:
        f.write(response.content)
    
    2
  2. Đặt cái này vào /home/el/foo4/main. py

    import requests
    
    from getpass import getpass
    from requests_ntlm import HttpNtlmAuth
    
    url = "https://share.something.com/path/file.xlsx"
    
    session = requests.Session()
    session.verify = False
    
    username = input("Enter your username: ")
    password = getpass("Enter your password: ")
    
    session.auth = HttpNtlmAuth(username, password)
    response = session.get(url)
    
    with open(output.xlsx, wb) as f:
        f.write(response.content)
    
    3
  3. chạy nó

    import requests
    
    from getpass import getpass
    from requests_ntlm import HttpNtlmAuth
    
    url = "https://share.something.com/path/file.xlsx"
    
    session = requests.Session()
    session.verify = False
    
    username = input("Enter your username: ")
    password = getpass("Enter your password: ")
    
    session.auth = HttpNtlmAuth(username, password)
    response = session.get(url)
    
    with open(output.xlsx, wb) as f:
        f.write(response.content)
    
    4

    Điều đó nhập mọi thứ trong tệp nước ngoài từ một thư mục khác

Ví dụ 5, sử dụng

>>> os.path.splitext('/a/b.c/d')
('/a/b.c/d', '')
>>> os.path.splitext('.bashrc')
('.bashrc', '')
4

import requests

from getpass import getpass
from requests_ntlm import HttpNtlmAuth

url = "https://share.something.com/path/file.xlsx"

session = requests.Session()
session.verify = False

username = input("Enter your username: ")
password = getpass("Enter your password: ")

session.auth = HttpNtlmAuth(username, password)
response = session.get(url)

with open(output.xlsx, wb) as f:
    f.write(response.content)
5

Ví dụ 6, nhập tệp của bạn qua cõng python startuphook

Cập nhật. Ví dụ này đã từng hoạt động với cả python2 và 3, nhưng hiện tại chỉ hoạt động với python2. python3 đã loại bỏ bộ tính năng startuphook của người dùng này vì nó đã bị lạm dụng bởi những người viết thư viện python có kỹ năng thấp, sử dụng nó để đưa mã của họ vào không gian tên chung một cách bất lịch sự, trước tất cả các chương trình do người dùng xác định. Nếu bạn muốn điều này hoạt động với python3, bạn sẽ phải sáng tạo hơn. Nếu tôi cho bạn biết cách thực hiện, các nhà phát triển python cũng sẽ vô hiệu hóa bộ tính năng đó, vì vậy bạn sẽ tự làm

Thấy. https. // tài liệu. con trăn. org/2/thư viện/người dùng. html

Đặt mã này vào thư mục chính của bạn trong

>>> os.path.splitext('/a/b.c/d')
('/a/b.c/d', '')
>>> os.path.splitext('.bashrc')
('.bashrc', '')
5

import requests

from getpass import getpass
from requests_ntlm import HttpNtlmAuth

url = "https://share.something.com/path/file.xlsx"

session = requests.Session()
session.verify = False

username = input("Enter your username: ")
password = getpass("Enter your password: ")

session.auth = HttpNtlmAuth(username, password)
response = session.get(url)

with open(output.xlsx, wb) as f:
    f.write(response.content)
6

Đặt mã này vào chính của bạn. py (có thể ở bất cứ đâu)

import requests

from getpass import getpass
from requests_ntlm import HttpNtlmAuth

url = "https://share.something.com/path/file.xlsx"

session = requests.Session()
session.verify = False

username = input("Enter your username: ")
password = getpass("Enter your password: ")

session.auth = HttpNtlmAuth(username, password)
response = session.get(url)

with open(output.xlsx, wb) as f:
    f.write(response.content)
7

Chạy nó, bạn sẽ nhận được cái này

import requests

from getpass import getpass
from requests_ntlm import HttpNtlmAuth

url = "https://share.something.com/path/file.xlsx"

session = requests.Session()
session.verify = False

username = input("Enter your username: ")
password = getpass("Enter your password: ")

session.auth = HttpNtlmAuth(username, password)
response = session.get(url)

with open(output.xlsx, wb) as f:
    f.write(response.content)
8

Nếu bạn gặp lỗi ở đây.

>>> os.path.splitext('/a/b.c/d')
('/a/b.c/d', '')
>>> os.path.splitext('.bashrc')
('.bashrc', '')
6 thì điều đó có nghĩa là bạn đang sử dụng python3, startuphook bị tắt ở đó theo mặc định

Tín dụng cho jist này đi đến. https. //github. com/doc what/homedir-examples/blob/master/python-command line/. pythonrc. py Gửi dọc theo thuyền của bạn

Ví dụ 7, Mạnh mẽ nhất. Nhập tệp trong python bằng lệnh nhập trần

  1. Tạo một thư mục mới
    >>> os.path.splitext('/a/b.c/d')
    ('/a/b.c/d', '')
    >>> os.path.splitext('.bashrc')
    ('.bashrc', '')
    
    7
  2. Tạo một thư mục mới
    >>> os.path.splitext('/a/b.c/d')
    ('/a/b.c/d', '')
    >>> os.path.splitext('.bashrc')
    ('.bashrc', '')
    
    8
  3. Tạo một tệp trống có tên

    >>> os.path.splitext('/a/b.c/d')
    ('/a/b.c/d', '')
    >>> os.path.splitext('.bashrc')
    ('.bashrc', '')
    
    9 dưới herp

    import requests
    
    from getpass import getpass
    from requests_ntlm import HttpNtlmAuth
    
    url = "https://share.something.com/path/file.xlsx"
    
    session = requests.Session()
    session.verify = False
    
    username = input("Enter your username: ")
    password = getpass("Enter your password: ")
    
    session.auth = HttpNtlmAuth(username, password)
    response = session.get(url)
    
    with open(output.xlsx, wb) as f:
        f.write(response.content)
    
    9
  4. Tạo một thư mục mới /home/el/foo5/herp/derp

  5. Dưới derp, tạo một tệp

    >>> os.path.splitext('/a/b.c/d')
    ('/a/b.c/d', '')
    >>> os.path.splitext('.bashrc')
    ('.bashrc', '')
    
    9 khác

    >>> import os
    >>> filename, file_extension = os.path.splitext('/path/to/somefile.ext')
    >>> filename
    '/path/to/somefile'
    >>> file_extension
    '.ext'
    
    0
  6. Trong /home/el/foo5/herp/derp tạo một tệp mới có tên là

    def what_does_the_fox_say():
      print("vixens cry")
    
    1 Đặt cái này vào đó

    >>> import os
    >>> filename, file_extension = os.path.splitext('/path/to/somefile.ext')
    >>> filename
    '/path/to/somefile'
    >>> file_extension
    '.ext'
    
    1
  7. Khoảnh khắc của sự thật, Tạo tệp mới

    def what_does_the_fox_say():
      print("vixens cry")
    
    2, đặt cái này vào đó;

    >>> import os
    >>> filename, file_extension = os.path.splitext('/path/to/somefile.ext')
    >>> filename
    '/path/to/somefile'
    >>> file_extension
    '.ext'
    
    2
  8. chạy nó

    >>> import os
    >>> filename, file_extension = os.path.splitext('/path/to/somefile.ext')
    >>> filename
    '/path/to/somefile'
    >>> file_extension
    '.ext'
    
    3

    Tệp

    >>> os.path.splitext('/a/b.c/d')
    ('/a/b.c/d', '')
    >>> os.path.splitext('.bashrc')
    ('.bashrc', '')
    
    9 trống giao tiếp với trình thông dịch python rằng nhà phát triển dự định thư mục này là một gói có thể nhập

Nếu bạn muốn xem bài đăng của tôi về cách bao gồm TẤT CẢ. py trong một thư mục xem tại đây. https. // stackoverflow. com/a/20753073/445131

Làm cách nào để lấy dữ liệu từ SharePoint bằng Python?

đây là mã. .
nhập sharepy
từ sharepy nhập kết nối
từ sharepy nhập SharePointSession
nhật ký nhập khẩu
tên người dùng = 'abcd123'
mật khẩu = '1234'
s = chia sẻ. kết nối (SPUrl, tên người dùng, mật khẩu)
# Tạo tiêu đề cho yêu cầu http

Tôi có thể tải xuống tệp từ SharePoint không?

Để bắt đầu tải xuống tệp, hãy tìm thư mục tệp của bạn trong SharePoint. Chọn tệp bạn muốn tải xuống bằng cách nhấp vào vòng tròn ở bên trái tên tệp. Khi bạn đã chọn các tệp, hãy nhấp vào nút "Tải xuống" trong thanh lệnh

Tôi có thể sử dụng Python với SharePoint không?

Xây dựng ứng dụng ETL cho dữ liệu SharePoint bằng Python . Sử dụng chức năng kết nối cho CData SharePoint Connector để tạo kết nối làm việc với dữ liệu SharePoint .

Làm cách nào để đọc danh sách SharePoint trong Python?

3 – Mã nguồn hoàn chỉnh .
Đọc nội dung trang web
Sử dụng một thể hiện của lớp BeautifulSoup để phân tích nội dung trang web
Kết nối với danh sách SharePoint
Tải xuống tất cả các mục trong danh sách SharePoint
So sánh dữ liệu được trích xuất từ ​​trang web với dữ liệu được tải xuống từ danh sách SharePoint