我正在编写一个python脚本来替换具有特定扩展名(.seq)的目录中的每个文本文件中的字符串.替换的字符串应该只来自每个文件的第二行,并且输出是一个新的子目录(称之为干净),其文件名与原始文件相同,但带有*.clean后缀.输出文件包含与原始文本完全相同的文本,但替换了字符串.我需要替换所有这些字符串:'K','Y','W','M','R','S'和'N'.
这是我在谷歌搜索后想出来的.这是非常混乱的(编程的第二周),它停止将文件复制到干净的目录而不替换任何东西.我真的很感激任何帮助.
谢谢!
import os, shutil
os.mkdir('clean')
for file in os.listdir(os.getcwd()):
if file.find('.seq') != -1:
shutil.copy(file, 'clean')
os.chdir('clean')
for subdir, dirs, files in os.walk(os.getcwd()):
for file in files:
f = open(file, 'r')
for line in f.read():
if line.__contains__('>'): #indicator for the first line. the first line always starts with '>'. It's a FASTA file, if you've worked with dna/protein before.
pass
else:
line.replace('M', 'N')
line.replace('K', 'N')
line.replace('Y', 'N')
line.replace('W', 'N')
line.replace('R', 'N')
line.replace('S', 'N')
Run Code Online (Sandbox Code Playgroud) 我的一个朋友宣布使用新类型
typedef GLfloat vec3_t[3];
Run Code Online (Sandbox Code Playgroud)
后来用vec3_t来分配内存
vertices=new vec3_t[num_xyz* num_frames];
Run Code Online (Sandbox Code Playgroud)
他释放了记忆
delete [] vertices;
Run Code Online (Sandbox Code Playgroud)
问题:
1.由于vec3_t是GLfloat [3]的别名,是否意味着
vec3_t[num_xyz* num_frames]
Run Code Online (Sandbox Code Playgroud)
相当于
GLfloat[3][num_xyz* num_frames];
Run Code Online (Sandbox Code Playgroud)
2.如果上面是2维数组,那么如何从内存中正确删除?
提前致谢;
来自deo
我使用这个LaTeX代码添加参考书目部分:
\bibliographystyle{plain}
\bibliography{bp}
Run Code Online (Sandbox Code Playgroud)
第一页看起来很好.它包含参考书目标题,没有标题和引用列表.但是,下一页是带有上一节标题的标题.有没有办法删除这个标题?
在Python正则表达式中,
re.compile("x"*50000)
Run Code Online (Sandbox Code Playgroud)
给我 OverflowError: regular expression code size limit exceeded
但是下面的一个没有得到任何错误,但它达到了100%的CPU,并在我的电脑上花了1分钟
>>> re.compile(".*?.*?.*?.*?.*?.*?.*?.*?.*?.*?"*50000)
<_sre.SRE_Pattern object at 0x03FB0020>
Run Code Online (Sandbox Code Playgroud)
这是正常的吗?
我应该假设,".*?.*?.*?.*?.*?.*?.*?.*?.*?.*?"*50000比短"x"*50000吗?
在Python 2.6,Win32上测试过
更新1:
看起来".*?.*?.*?.*?.*?.*?.*?.*?.*?.*?"*50000可以减少到.*?
那么,这个怎么样?
re.compile(".*?x"*50000)
Run Code Online (Sandbox Code Playgroud)
它确实编译,如果那个也可以减少到".*?x",它应该匹配字符串"abcx"或"x"单独,但它不匹配.
那么,我错过了什么吗?
更新2:
我的观点是不知道正则表达式源字符串的最大限制,我想知道"x"*50000溢出处理程序捕获的一些原因/概念,但不是".*?x"*50000.
这对我来说没有意义,这就是原因.
在溢出检查中它是缺少的东西或它只是很好或它真的溢出的东西?
任何提示/意见将不胜感激.
有时,用户需要更改SharePoint列表项中不可编辑的信息,例如,以编辑形式隐藏的字段(在我的情况下,它是记录编号).
我决定创建一个小型Windows GUI应用程序,管理员可以在服务器上运行该应用程序并进行所请求的更改.但是,获取SPListItem我发现的实例的最简单方案是:
SPSiteojbect创建,使用给定的URL:SPSite oSite=new SPSite(this.txtURL.text);SPWeb对象被创建为SPWeb oWeb = oSite.OpenWeb(this.txtWebUrl.text);oWeb.ListsSPListItem找到所需的oWeb.Lists[this.lstAllLists.selectedValue].GetItemById(this.txtItemId.value);这是一条很长的路径,管理员不喜欢打字,点击和等待.
他们想复制listitem显示表单的URL(从Web浏览器或某人的电子邮件中),将其粘贴到更新工具中,然后只需单击"Find it!"即可.
我需要提示如何做到这一点.
我知道我可能用正则表达式解析URL,因为它通常是以形式http://server/sites/[somesite]/[someweb/somesubweb]/lists/[somelist]/forms/dispform.aspx?ID=[123]存在,但存在变化 - 例如,http://[server]/[DocumentLibrary]/Forms/RenamedDispForm.aspx?ID=[1234]结构与第一个示例完全不同.
所以,问题是 - 是否有一些简单的方法来找到SPListItem它的URL?SPContext从URL 重建一个很好.
编辑:刚刚发现可以SPSite通过传递一个更长的URL 来构造一个有效的对象:
Dim oSite as New SPSite("http://server/sites/site/Lists/test/DispForm.aspx?ID=136")
Run Code Online (Sandbox Code Playgroud) 我循环一些XML节点,并说我有1到200个这些节点.
如何"随机"选择最多10个这些节点.它必须是十分之一,但只有一个.
这就是我现在正在使用的......
$i = 0;
foreach ($butters->users->user as $user) {
if($i==10) break;
$id = $user->id;
$name = $user->screen_name;
$profimg = $user->profile_image_url;
echo "things";
$i++;
}
Run Code Online (Sandbox Code Playgroud)
困难在于我不知道我将拥有多少,但是我希望从中选择我的"随机"10的游泳池来自全部,但是很多都存在.
如果您曾试图在Android上编写一个更衣室应用程序,请确保您遇到此问题:
boolean mBackPressed = false;
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN) {
switch (keyCode) {
case KeyEvent.KEYCODE_BACK:
mBackPressed = true;
break;
case KeyEvent.KEYCODE_MENU:
if (mBackPressed)
unLock();
break;
default:
mBackPressed = false;
showMessage();
break;
}
}
return true;
}
private void showMessage() {
Toast.makeText(getBaseContext(), "Back + Menu", Toast.LENGTH_SHORT)
.show();
}
private void unLock() {
this.setResult(Activity.RESULT_OK);
this.finish();
}
Run Code Online (Sandbox Code Playgroud)
似乎onKeyDown过滤掉所有键,但"后退"和"菜单"......
嗯,这不是真的!主页按钮仍将为您带来主屏幕,结束通话按钮将运行原生的Locker应用程序!
研究员在那里也声称它是一个问题:
如何从ENDCALL按钮
问题收听Home Back屏幕按钮
按下按键在Activity中按,特别是在选项菜单中
问题4202:功能建议:拦截KEYCODE_CALL的权限
你知道阻止这些按钮的任何解决方法吗?
唯一的方法(经常) - 用C写?
我正在构建一个相对简单的Web应用程序,其中主servlet实现ServletContextListener接口以确定上下文是已启动还是已停止.我实现了我的contextInitialized,contextDestroyed,init和destroy方法(包括init和destroy调用super基类).我目前没有实现任何真正的功能,除了我在contextInitialized加载log4j.properties文件的方法中初始化log4j .
然而,当我从Eclipse中启动和停止Tomcat服务器时,所有内容都以正确的顺序调用(我正在使用一些System.out.println来测试它)但是在停止服务器大约10秒后我会看到一个Eclipse弹出窗口说明下列:
localhost上的服务器Tomcat v6.0服务器没有响应.你想终止这台服务器吗?单击"确定"以终止服务器,或单击"取消"继续等待.
这是我停止服务器时在Eclipse控制台中打印的内容:
04/01/2010 7:39:13 PM org.apache.catalina.core.StandardService stop
INFO:停止服务Catalina
contextDestroyed
04/01/2010 7:39:13 PM org.apache.coyote.http11.Http11Protocol destroy
INFO:在http-8080上停止Coyote HTTP/1.1
在最后INFO一条消息之后,它会挂起,直到出现弹出窗口.如果我选择等待,请按取消,Eclipse变得无法使用,我必须从终端终止Eclipse进程.
任何关于如何解决这个问题的意见将不胜感激.
更新:
问题是由我在我的init方法中启动的非守护程序线程引起的(忘了提到:).通过使用该stop方法显式停止线程解决了该问题,即使该方法似乎已被弃用.
也许我在这里遗漏了一些简单的东西,但是当我运行"ruby script/server"时,我可以通过localhost访问它,但不能远程访问它.有没有什么简单的方法可以远程访问它而无需进行一些花哨的部署?