我需要下载大量的PDF文件才能工作。 PDF文件均从相同的URL(以下示例)下载,唯一的变化是objId=
部分后面的数字。这似乎是“自动化无聊的东西”并使我的老板惊奇的绝好机会,但是我的程序失败了,因为URL的输出在objId的两端都给出了[%27 ...%27],但这不是我要打开的地址。
所需的URL(已编辑):https://.../cs.exe?func=ll&objId=385135288&objAction=download
我有一个csv文件,其中列出了所有objId数字。该csv看起来像:
385135288
385030780
385156245
385283431
384988131
这是我的Python代码:
import csv
import webbrowser
f = open('5_Sample_Object_IDs.csv')
csv_f = csv.reader(f)
for row in csv_f:
obj_id = row
url = 'https://.../cs.exe?func=ll&objId='+str(obj_id)+'&objAction=download'
webbrowser.open(url)
print('Complete! Check your Downloads folder.')
我的输出是:
['385135288']
['385030780']
['385156245']
['385283431']
['384988131']
输出网址:https://.../cs.exe?func=ll&objId=[%27384988131%27]&objAction=download
似乎我的问题来自每个输出的['...']; URL正在使用[
并将'
转换为%27
。我不知道如何解决这个问题。我如何才能让该程序仅输出数字?
非常感谢您的帮助或指导!
答案 0 :(得分:0)
欢迎使用StackOverflow!
看起来您只需要引用obj_id
所在列表的索引:
obj_id = row[0]
您正在将列表传递到str()
而不是列表中的字符串元素。然后,您也可以省略str()
调用。我也建议使用.format()
而不是连接字符串:
import csv
import webbrowser
f = open('5_Sample_Object_IDs.csv')
csv_f = csv.reader(f)
for row in csv_f:
obj_id = row[0]
url = 'https://.../cs.exe?func=ll&objId={}&objAction=download'.format(obj_id)
webbrowser.open(url)
print('Complete! Check your Downloads folder.')
答案 1 :(得分:0)
这里没有理由使用CSV阅读器。您只有一个URL列表,应该直接阅读它们。
PeriodicWorkRequest request =
new PeriodicWorkRequest.Builder(LocationListenerWorker.class,
12, HOURS)
.build();
mWorkManager.enqueueUniquePeriodicWork(Constants.LOCATION_TASK_ID,
ExistingPeriodicWorkPolicy.REPLACE, request);