Python3 & 如何在Python中写文件路径
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python3 & 如何在Python中写文件路径相关的知识,希望对你有一定的参考价值。
参考技术A Python中文件路径共分为两种:绝对路径和相对路径1、绝对路径就是文件的真正存在的路径,是指从硬盘的根目录(盘符)开始,进行一级级目录指向文件。
2、 相对路径是以当前文件为基准进行一级级目录指向被引用的资源文件。
其中大小写不影响windows定位到文件
python 文件路径书写方式有两种:
方法一:使用转义字符
filePath = 'E:\Temp\test'
方法二:使用r声明字符串
filePath = r'E:\Temp\test'
上述写法中"\ “为字符串中的特殊字符,加上r后变为原始字符串,则不会对字符串中的”\t"、"\r" 进行字符串转义。
如何在Python中写到一个公开的Google Sheet(未经授权)?
我对一个不属于我的 Google Sheet 有完全的编辑权限。我希望能够在没有Google API授权的情况下使用Python写入电子表格。我检查了几个可用的软件包(gdata
, gspread
等),似乎所有的人都要求提供凭证。
我也能够在没有授权的情况下,使用以下方法读取电子表格的内容 requests
或 pd.read_csv()
pandas (我调整了URL,把最后一部分说......改为......。edit#gid=
......改为....export?format=csv&gid=
...). 然而,当发送一个POST请求到相同的URL时,我收到了200状态代码,但同样的空电子表格。
任何帮助是非常感激的。
我相信你的目标如下。
- 你想用python把值放到公开共享的Google电子表格中。
- 在这种情况下,你想在没有授权的情况下访问电子表格。
对于这个问题,这个答案如何?
问题和解决方法。
为了将数值放到公开共享的Google Spreadsheet中,需要使用POST方法。在这种情况下,需要使用访问令牌。另一方面,在GET方法的情况下,当使用Sheets API时,可以使用API密钥。而端点如 exportLinks
你可以在不使用API密钥的情况下检索到这些值。这些都是Google方面的规范。
在这种情况下,为了实现你的目标,我想提出以下两种模式。
模式1.在这种情况下,我想提出以下两种模式。
在这个模式中,我建议使用从服务账户中获取的访问令牌来访问电子表格。在这种情况下,脚本可以更简单。
脚本示例:在这个示例脚本中,我建议使用从服务账户获取的访问令牌来访问电子表格。
import gspread
from oauth2client.service_account import ServiceAccountCredentials
spreadsheetId = "###" # Please set the Spreadsheet ID.
scope = ['https://www.googleapis.com/auth/spreadsheets']
credentials = ServiceAccountCredentials.from_json_keyfile_name('credentials.json', scope)
client = gspread.authorize(credentials)
spreadsheet = client.open_by_key(spreadsheetId)
worksheet = spreadsheet.sheet1
worksheet.update_acell('A1', 'sample')
- 在这个示例脚本中
sample
在公开共享的电子表格中,使用gspread将其放到第1个标签的 "A1 "单元格中。
模式2.在此模式中,我建议使用Google Script制作的Web Apps来访问电子表格。
在这个模式中,我想建议使用Google Apps Script创建的Web Apps作为封装API来访问电子表格。在这种情况下,python脚本更简单。
使用方法。
请按以下流程操作
1. 1. 创建Google Apps Script的新项目。
Web Apps的示例脚本是一个Google Apps脚本,所以请创建一个Google Apps脚本的项目。所以请创建一个Google Apps Script的项目。
如果您想直接创建,请进入以下页面 https:/script.new. 在这种情况下,如果你没有登录谷歌,就会打开登录界面。所以请登录谷歌。这样,Google Apps Script的脚本编辑器就被打开了。
2. 2.准备脚本。
请将以下脚本(Google Apps Script)复制并粘贴到脚本编辑器中。然后 请在高级Google服务中启用Google Sheets API. 这个脚本是针对Web应用程序的。
function doPost(e) {
try {
const spreadsheetId = e.parameter.spreadsheetId;
const obj = JSON.parse(e.postData.contents);
const resource = obj.body;
const range = obj.arguments.range;
const valueInputOption = obj.arguments.valueInputOption;
Sheets.Spreadsheets.Values.update(resource, spreadsheetId, range, {valueInputOption: valueInputOption});
return ContentService.createTextOutput("ok");
} catch(e) {
return ContentService.createTextOutput(JSON.stringify(e));
}
}
- 在这种情况下,使用的是POST方法。
- 在这个示例脚本中,作为一个测试脚本,使用Sheets API中的spreadsheets.values.update方法将值放到电子表格中。
3. 部署Web应用程序。
- 在脚本编辑器上,通过 "Publish"-> "Deploy as web app "打开一个对话框。
- 选择 "我" 对于 "执行应用程序为:".
- 这样一来,脚本就会以所有者的身份运行。
- 选择 "任何人,即使是匿名的" 对于 "谁能访问该应用程序:".
- 在这种情况下,不需要请求访问令牌。我认为,我建议你的目标采用这种设置。
- 当然,你也可以使用访问令牌。届时,请将此设置为 "任何人".
- 点击 "部署 "按钮,作为新的 "项目版本"。
- 自动打开 "需要授权 "的对话框。
- 点击 "审查权限"。
- 选择自己的账户。
- 点击 "此应用未验证 "处的 "高级"。
- 点击 "转到##项目名称##(不安全)"。
- 点击 "允许 "按钮。
- 点击 "确定"。
- 复制Web Apps的URL。就像
https://script.google.com/macros/s/###/exec
.- 当您修改了Google Apps脚本,请重新部署为新版本。这样,修改后的脚本就会反映到Web Apps上。请注意这一点。
4. 4. 使用Web Apps运行该功能。
这是一个请求Web Apps的示例python脚本。请设置您的Web Apps URL、电子表格ID和范围。
import json
import requests
spreadsheet_id = '###' # Please set the Spreadsheet ID.
body = {
"arguments": {"range": "Sheet1!A1", "valueInputOption": "USER_ENTERED"},
"body": {"values": [["sample"]]}
}
url = 'https://script.google.com/macros/s/###/exec?spreadsheetId=' + spreadsheet_id
res = requests.post(url, json.dumps(body), headers={'Content-Type': 'application/json'})
print(res.text)
- 在这个示例脚本中。
sample
被放到了公开共享的电子表格的第1个标签页的 "A1 "单元格中。 - 在这种情况下,无需在python脚本中进行授权,因为在部署Web Apps时已经完成了授权。
注意:当你修改了Web Apps的脚本后,你就会发现,你的Web Apps已经被授权了。
- 当您修改了Web Apps的脚本,请将Web Apps重新部署为新版本。这样,最新的脚本就会反映到Web Apps上。请注意这一点。
参考资料
以上是关于Python3 & 如何在Python中写文件路径的主要内容,如果未能解决你的问题,请参考以下文章