我想逐行读取python中的文件,但在某些情况下(基于if条件)我还想读取文件中的下一行,然后继续以相同的方式读取它.
例:
file_handler = open(fname, 'r')
for line in file_handler:
if line[0] == '#':
print line
else:
line2 = file_handler.readline()
print line2
Run Code Online (Sandbox Code Playgroud)
基本上在这个例子中我试图逐行读取它,但是当行没有开始时#我想读下一行,打印它,然后继续读取line2之后的行.这只是一个例子,我在代码中遇到类似的错误,但我的目标是标题中所述.
但是我会得到一个错误ValueError: Mixing iteration and read methods would lose data.
是否有可能以更聪明的方式做我想做的事情?
我有一个图像编辑程序.它有几种方法,如灰度,缩放,合并图像等.每种方法都可以完美地完成.但是,在调用mergeImg方法后调用grayScale方法时出现错误.如果我先应用灰度,则不会发生这种情况.
这是错误:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at Picture.width(Picture.java:51)
at Picture$4.actionPerformed(Picture.java:222)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:833)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:877)
at java.awt.Component.processMouseEvent(Component.java:6504)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6269)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4860)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4686)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2713)
at java.awt.Component.dispatchEvent(Component.java:4686)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)
at java.awt.EventQueue.access$000(EventQueue.java:101)
at java.awt.EventQueue$3.run(EventQueue.java:666)
at java.awt.EventQueue$3.run(EventQueue.java:664)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:680)
at java.awt.EventQueue$4.run(EventQueue.java:678)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:677)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
at …Run Code Online (Sandbox Code Playgroud) java compiler-errors image image-processing nullpointerexception
运行此代码在行中为我提供了一个数组超出范围的异常:
int sum = array[k]+array[l]; //sum of l and k
Run Code Online (Sandbox Code Playgroud)
...应该是一个简单的修复,但我无法弄清楚是什么原因导致它,因为我正在使用array.length来绑定循环.有人可以帮忙吗?
PS对于记录,此代码应该在int数组中搜索等于int的int或单个int的对.它仅使用println工作,但我试图将添加到目标的数字放入向量中.
public Vector<Vector<Integer>> subsetSum(int[] array, int target) {
//creates vectors, adds inner vector to another vector
outer = new Vector<Vector<Integer>>();
inner = new Vector<Integer>();
outer.add(inner);
for (int k = 0; k <= array.length; k++) {
for (int l = 0; l <= array.length; l++) {
int sum = array[k]+array[l]; //sum of l and k
int i = 0;
if (sum == target) {
inner.add(i, array[l]);
inner.add(i, array[k]);
i++;
//prints …Run Code Online (Sandbox Code Playgroud) 我知道在使用时argv我必须输入文件作为参数(例如:)python ex15.py ex15_sample.txt,使用时raw_input我输入文件名作为输入.
但我似乎无法找出为什么获取文件名的方法会比另一种更好.有人可以解释原因吗?
我正在用Python编写一个复杂的树结构,我厌倦了每次运行代码时创建树对象并用数据填充它们.
那么,有没有办法让你的对象在Python中"持久"."持久"是指如果有一种方法可以将所有对象保存为文件中的字节,那么当我再次运行代码时,我可以使用字节文件中的数据创建并填充所有对象,从而恢复状态我上次运行代码时离开了.
我想可能有一个帖子有同样的问题,但我想不出一个更好的术语"耐用"的英语.
<li><%= link_to('More Commented', posts_morecommented_path) %></li>
Run Code Online (Sandbox Code Playgroud)
错误
ActiveRecord::RecordNotFound in PostsController#show
Couldn't find Post with id=morecommented
Request
Parameters:
{"id"=>"morecommented"}
Run Code Online (Sandbox Code Playgroud)
我在哪里做错了?
postscontroller #show action
def show @post = Post.find(params[:id]) ... end
Run Code Online (Sandbox Code Playgroud)
morecommented.html.erb
<% @moreCommented.each do |t| %>
<%= link_to t.title, :controller => '/posts', :action => 'show', :id => t.id %><br/>
<% end %>
Run Code Online (Sandbox Code Playgroud)
耙路线
post GET /posts/:id(.:format) {:action=>"show", :controller=>"posts"}
....
posts_morecommented /posts/morecommented(.:format) {:controller=>"posts", :action=>"morecommented"}
Run Code Online (Sandbox Code Playgroud)
routes.rb中:
resources :posts
match "posts/:id/categ" => "posts#categ"
match "posts/:id/tag_posts" => "posts#tag_posts"
match "posts/searcharchive" => "posts#searcharchive"
match "posts/morecommented" => "posts#morecommented"
Run Code Online (Sandbox Code Playgroud) ruby routing ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=100)
content = models.CharField(max_length=1000)
created = models.DateField()
modified = models.DateField()
Run Code Online (Sandbox Code Playgroud)
python manage.py syncdb出错:
Traceback (most recent call last):
File "manage.py", line 14, in <module>
execute_manager(settings)
File "/usr/local/lib/python2.6/dist-packages/django/core/management/__init__.py", line 438, in execute_manager
utility.execute()
File "/usr/local/lib/python2.6/dist-packages/django/core/management/__init__.py", line 379, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/local/lib/python2.6/dist-packages/django/core/management/base.py", line 191, in run_from_argv
self.execute(*args, **options.__dict__)
File "/usr/local/lib/python2.6/dist-packages/django/core/management/base.py", line 219, in execute
self.validate()
File "/usr/local/lib/python2.6/dist-packages/django/core/management/base.py", line 249, in validate
num_errors = get_validation_errors(s, app)
File "/usr/local/lib/python2.6/dist-packages/django/core/management/validation.py", line 35, in get_validation_errors
for (app_name, …Run Code Online (Sandbox Code Playgroud) 我不得不这样做:
def createpost(request):
if request.method == 'POST':
form = PostForm(request.POST)
if form.is_valid():
titlee = form.cleaned_data['title']
contentt = form.cleaned_data['content']
post = Post(title=titlee,content=contentt,created='2012-01-06',modified='2012-01-06')
post.save()
return render_to_response('createpost.html', {"form": form}, context_instance=RequestContext(request))
Run Code Online (Sandbox Code Playgroud)
有没有办法获得这样的形式价值post = Post(form) ; post.save()我不想像这样单独获得价值:titlee = form.cleaned_data['title']
任何的想法?
我希望能够增加列表的名称,以便创建多个空列表.
例如,我想要.
List_1 = []
List_2 = []
...
List_x = []
Run Code Online (Sandbox Code Playgroud)
我一直在努力:
for j in range(5): #set up loop
list_ = list_ + str(j) # increment the string list so it reads list_1, list_2, ect
list_ = list() # here I want to be able to have multiple empty lists with unique names
print list_
Run Code Online (Sandbox Code Playgroud) 我有一个文件,其中每个块由!sie 分隔
!
vserver XXXX
virtual XX.xx.XX.XX tcp 389
owner LDAP
serverfarm XXX
idle 5
persistent rebalance
inservice
!
Run Code Online (Sandbox Code Playgroud)
我想得到包含vserver信息的每个部分.我试图在python中使用正则表达式,但我在处理换行符时遇到问题
我试过这样的事情:
pattern = r"!\n vserver \S+\n "
Run Code Online (Sandbox Code Playgroud)