我正在尝试编写一个python脚本,将我cwd的目标更改为所需的目录.我无法直接从python执行此任务,因此我编写了一个简单的batch脚本来执行此操作.
Changedir.bat
@echo off
chdir /D F:\cygwin\home\
Run Code Online (Sandbox Code Playgroud)
如果我直接在我的执行上面的脚本cmd它工作正常,但如果我尝试用python脚本执行它没有任何反应.我的cwd遗体一样.
PythonScript.py
import shlex,subprocess
change_dir = r'cmd.exe /c C:\\Users\\test.bat'
command_change = shlex.split(change_dir)
subprocess.call(command_change)
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用awkif string为空来打印特定文本.它适用于以下情况
noob@noob:~$ echo "" | awk '{if ($0=="") print "not playing"}'
not playing
Run Code Online (Sandbox Code Playgroud)
但是当我尝试在下面的情况下采取类似的方法时,它不起作用
noob@noob:~$ mpc current | awk '{if ($0=="") print "not playing"}'
noob@noob:~$
Run Code Online (Sandbox Code Playgroud)
我相信mpc current如果没有播放歌曲的输出是一个空字符串.
noob@noob:~$ mpc current
noob@noob:~$ #empty string
Run Code Online (Sandbox Code Playgroud)
那么,我的empty string 错误假设是什么?
我需要的是如何拉动当前线和它上面的线.
例:
#3 My test line
#4 Line above current line
#5 My current line |(cursor)
#6 Line below current line
Run Code Online (Sandbox Code Playgroud)
所以,我怎么复制行#5,并#4在我的光标在行5.
我正在查看Perl的File::Find模块,并按以下方式尝试:
#!/usr/bin/perl
use warnings;
use strict;
use File::Find;
find({wanted => \&listfiles,
no_chdir => 1}, ".");
sub listfiles{
print $File::Find::name,"\n";
}
Run Code Online (Sandbox Code Playgroud)
现在,当我运行它时,我得到以下输出:
Noob@Noob:~/tmp$ perl test.pl
.
./test.txt
./test.pl
./test1.txt
./hello
./hello/temp.txt
Run Code Online (Sandbox Code Playgroud)
现在,我想通过设置no_chdir=>1我将使我的代码不进入任何目录,如果它遇到一个.但输出清楚地表明我的代码正在进入hello目录并列出其文件.
那么,我如何更改我的代码行为,ls而不是输入任何目录.另外我./在我的文件/目录名称前面可以删除吗?
我正在使用Perl 5.14.
在我的国家,我没有spotify服务,我也没有使用系统的安装权限/权限,但我想从subbreddit上共享的spotify播放列表中提取歌曲名称/艺术家元数据/r/spotify.
例如,用户在/r/spotify http://open.spotify.com/user/1224703396上分享了他的播放列表.现在,一旦您访问上面的页面,它就会要求do you have spotify installed.
那么,是否可以使用spotify API从用户共享播放列表中提取内容,或者是否有任何在线服务可以执行此操作.
我正在尝试了解chrome扩展,但我无法理解如何使用操作DOM页面content_scripts.
的manifest.json
{
"name": "First",
"version": "1.0",
"manifest_version": 2,
"description": "First extension",
"background": {
"scripts": ["test.js"]
},
"page_action": {
"default_icon": "icon.png",
"default_popup": "popup.html"
},
"content_scripts": [ {
"js": [ "jquery.min.js", "popup1.js" ],
"matches": [ "http://*/*", "https://*/*" ]
} ],
"permissions" : [
"tabs",
"http://*/*"
]
}
Run Code Online (Sandbox Code Playgroud)
test.js
function check(tab_id, data, tab){
if(tab.url.indexOf("google") > -1){
chrome.pageAction.show(tab_id);
}
};
chrome.tabs.onUpdated.addListener(check);
Run Code Online (Sandbox Code Playgroud)
popup1.js
function myfunc(){
var x = $('#options option:selected').text();
$("body").append('Test');
alert(x);
//window.close();
}
$(document).ready(function(){
$('#options').change(myfunc);
});
Run Code Online (Sandbox Code Playgroud)
上面的代码/扩展工作正常,因为myfunc被调用但它没有注入 …
我有一个这样的字符串 - :
st = "url=these,url=are,url=test,url=questions"
Run Code Online (Sandbox Code Playgroud)
现在从这个字符串我需要生成所有的值url.现在正在使用的正则表达式是这样的:
import re
re.findall(r'([^\(url=\)]+)',st)
Run Code Online (Sandbox Code Playgroud)
现在我想要的输出是['these,', 'are,', 'test,', 'questions']但我的正则表达式
['these,', 'a', 'e,', 'test,', 'q', 'estions']将此作为输出.
那么,应该是我修改的正则表达式以及为什么我的正则表达式没有给我所需的输出.
我使用facepy facebook graph API来访问我的邮箱/消息,我遵循以下两种方法:
第一种方法:
我使用access token了从Graph Explorerfacebook页面获得的并使用以下代码:
from facepy import GraphAPI
graph = GraphAPI(token)
print graph.get('/me')
#Rest of the code
Run Code Online (Sandbox Code Playgroud)
上面的代码工作正常,我能够使用一个来检索我的所有消息FQL Query.一段时间expired后我的auth_token 出现了问题.
所以,经过一些谷歌搜索,我转向接近两个:
现在,我所做的是创建了一个Facebook应用程序给了它read_mailbox权限并获得了它id and key然后使用facepy的get_application_access_token方法来获取令牌.
检索我使用的令牌后:
token = facepy.utils.get_application_access_token(app_id, key)
graph.get('/me')
## OUT: OAuthError: [2500] An active access token must be used to query information about the current user.
facepy.utils.get_extended_access_token(token, app_id, key)
# OUT: OAuthError: [1] No user access …Run Code Online (Sandbox Code Playgroud) 让我举一个例子,然后尝试解释我的问题:
noob@noob:~/Downloads$ ls | grep srt$
Elementary - 01x01 - Pilot.LOL.English.HI.C.orig.Addic7ed.com.srt
Haven - 01x01 - Welcome to Haven.DVDRip.SAiNTS.English.updated.Addic7ed.com.srt
Haven - 01x01 - Welcome to Haven.FQM.English.HI.C.updated.Addic7ed.com.srt
Supernatural - 08x01 - We Need to Talk About Kevin.LOL.English.HI.C.updated.Addic7ed.com.srt
The Big Bang Theory - 06x02 - The Decoupling Fluctuation.LOL.English.HI.C.orig.Addic7ed.com.srt
Torchwood - 1x01 - Everything changes.0TV.English.orig.Addic7ed.com.srt
Torchwood - 1x01 - Everything changes.divx.English.updated.Addic7ed.com.srt
Run Code Online (Sandbox Code Playgroud)
现在我只想删除four results上面的第一个命令。通常,如果我必须删除所有文件,我会这样做,ls | grep srt$ | xargs -I {} rm {}但在这种情况下,我只想删除前四个文件。
那么,如何限制 ls 和 grep 的输出或建议我采用替代方法来实现此目的。
我的代码是:
String str = "Hello";
String str1;
str1 = str;
str1 = str1 + " World";
System.out.println(str1);
System.out.println(str);
Run Code Online (Sandbox Code Playgroud)
我得到的输出是:
Hello World
Hello
Run Code Online (Sandbox Code Playgroud)
我期望的输出是Hello World针对这两种情况的,因为根据我的理解,在str1 = str两个对象都引用相同的位置后,如果我改变一个对象的内容,其他也应该受到影响.
那么,是str1 = str1 + " World";在不同的内存位置创建一个新的字符串对象.
我正在使用facepy facebook api从我的Facebook帐户中获取消息.我已经long live access token使用API 获得了60天的有效性.现在,在我查询消息之前的程序中,我想检查我的令牌是否已经过期,如果过期,则获取一个新令牌.
我正在使用 get_extended_access_token,它还返回一个描述令牌到期时间的日期时间实例.现在我认为这不是一种有效的使用方式,get_extended_access_token因为每次我要查询新消息时它都会获取access token(我知道它和以前一样),但我认为这是一个开销.
所以,我用Google搜索,发现我们也可以使用
https://graph.facebook.com/debug_token?input_token=INPUT_TOKEN&access_token=ACCESS_TOKEN
Run Code Online (Sandbox Code Playgroud)
到调试令牌
所以我提供了我long live access token而不是INPUT_TOKEN and ACCESS_TOKEN它,它给了我一个json响应:
{
"data": {
"app_id": XXXXX,
"is_valid": true,
"application": "YYYYY",
"user_id": ZZZZZZ,
"issued_at": 1349261684,
"expires_at": 1354445684,
"scopes": [
"read_mailbox"
]
}
}
Run Code Online (Sandbox Code Playgroud)
现在,如果你看一下expires_at它正在显示的字段1354445684 seconds,当我试图将它转换为几天/几个月它给了我15676 days,当我在图形资源管理器中使用调试选项检查相同的标记时,它显示
expires_at: 1354445684(about 2 months)
Run Code Online (Sandbox Code Playgroud)
现在,我不明白是怎么1354445684相当于2 months以及如何在Python来实现这一目标.
还要评论哪个更好的方法来检查其是否已过期API or using the facebook url?
String xpath = "//center/div";
Run Code Online (Sandbox Code Playgroud)
我想操纵上面的字符串,以便我的结果输出for loop是:
String new_xpath = "//center"
String var_xpath = "/div"
for(int i=0;i<5;i++)
String temp = //center/div[i]
Run Code Online (Sandbox Code Playgroud)
我知道我必须这样做:
String temp = new_xpah + var_xpath + [i]
Run Code Online (Sandbox Code Playgroud)
我需要上面的结构,以便我可以循环所有'div元素'来获取数据.