我需要遍历给定目录的子目录并搜索文件.如果我得到一个文件,我必须打开它并更改内容并用我自己的行替换它.
我试过这个:
import os
rootdir ='C:/Users/sid/Desktop/test'
for subdir, dirs, files in os.walk(rootdir):
for file in files:
f=open(file,'r')
lines=f.readlines()
f.close()
f=open(file,'w')
for line in lines:
newline = "No you are not"
f.write(newline)
f.close()
Run Code Online (Sandbox Code Playgroud)
但是我收到了一个错误.我究竟做错了什么?
我在Windows上使用Anaconda 2.7,我的网络连接使用代理.
以前,当使用python 2.7(Not Anaconda)时,我安装了这样的包:
pip install {packagename} --proxy proxy-us.bla.com:123
Run Code Online (Sandbox Code Playgroud)
有没有办法运行conda
代理参数?没有看到它conda help
.
谢谢
我已经完成了几个关于Python的教程,我知道如何定义类,但我不知道如何使用它们.例如,我创建以下文件(car.py):
class Car(object):
condition = 'New'
def __init__(self,brand,model,color):
self.brand = brand
self.model = model
self.color = color
def drive(self):
self.condition = 'Used'
Run Code Online (Sandbox Code Playgroud)
然后我创建另一个文件(Mercedes.py),我想从类Car创建一个Mercedes对象:
Mercedes = Car('Mercedes', 'S Class', 'Red')
Run Code Online (Sandbox Code Playgroud)
,但是我收到一个错误:
NameError: name 'Car' is not defined
Run Code Online (Sandbox Code Playgroud)
如果我在创建它的同一个文件(car)中创建一个实例(对象),我没有问题:
class Car(object):
condition = 'New'
def __init__(self,brand,model,color):
self.brand = brand
self.model = model
self.color = color
def drive(self):
self.condition = 'Used'
Mercedes = Car('Mercedes', 'S Class', 'Red')
print (Mercedes.color)
Run Code Online (Sandbox Code Playgroud)
哪个印刷品:
Red
Run Code Online (Sandbox Code Playgroud)
所以问题是:如何从同一个包(文件夹)中不同文件的类创建一个对象?
如何在不使用编程库的情况下计算两个向量的叉积?
例如给定的向量a = (1, 2, 3)
和b = (4, 5, 6)
我有一个包含csv文件的文件夹,每个文件有两列数据,例如:
0,red
15.657,red
0,red
0,red
4.429,red
687.172,green
136.758,green
15.189,red
0.152,red
23.539,red
0.348,red
0.17,blue
0.171,red
0,red
61.543,green
0.624,blue
0.259,red
338.714,green
787.223,green
1.511,red
0.422,red
9.08,orange
7.358,orange
25.848,orange
29.28,orange
Run Code Online (Sandbox Code Playgroud)
我使用以下R代码生成箱图:
files <- list.files(path="D:/Ubuntu/BoxPlots/test/", pattern=NULL, full.names=F, recursive=FALSE)
files.len<-length(files)
col_headings<-c("RPKM", "Lineage")
for (i in files){
i2<-paste(i,"png", sep=".")
boxplots<-read.csv(i, header=FALSE)
names(boxplots)<-col_headings
png(i2)
bplot<-ggplot(boxplots, aes(Lineage, RPKM)) + geom_boxplot(aes(fill=factor(Lineage))) + geom_point(aes(colour=factor(Lineage)))
print(bplot)
graphics.off()
}
Run Code Online (Sandbox Code Playgroud)
现在我想改变箱线图的颜色以匹配相应的x轴颜色标签.我还想更改x轴标签的名称,以及它们的顺序.有没有办法使用ggplot或qplot来做到这一点?
我有一组值,并希望创建包含2个元素的所有子集的列表.
例如,源集([1,2,3])
具有以下2元素子集:
set([1,2]), set([1,3]), set([2,3])
Run Code Online (Sandbox Code Playgroud)
有没有办法在python中执行此操作?
我想检查两个csr_matrix是否相等.
如果我做:
x.__eq__(y)
Run Code Online (Sandbox Code Playgroud)
我明白了:
raise ValueError("The truth value of an array with more than one "
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all().
Run Code Online (Sandbox Code Playgroud)
但是,这很好用:
assert (z in x for z in y)
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法呢?也许使用一些scipy
优化的功能?
非常感谢
我创造了这个玩具问题,反映了我更大的问题:
import numpy as np
ind = np.ones((3,2,4)) # shape=(3L, 2L, 4L)
dist = np.array([[0.1,0.3],[1,2],[0,1]]) # shape=(3L, 2L)
ans = np.array([np.dot(dist[i],ind[i]) for i in xrange(dist.shape[0])]) # shape=(3L, 4L)
print ans
""" prints:
[[ 0.4 0.4 0.4 0.4]
[ 3. 3. 3. 3. ]
[ 1. 1. 1. 1. ]]
"""
Run Code Online (Sandbox Code Playgroud)
我想尽快做到这一点,所以使用numpy的函数来计算ans
应该是最好的方法,因为这个操作很重,我的矩阵很大.
我看到这篇文章,但形状不同,我无法理解axes
我应该用于这个问题.但是,我确信,数字应该有答案.有什么建议?
编辑:我接受了@ ajcr的答案,但也请阅读我自己的答案,它可能会帮助别人......
可能重复:
在Java中覆盖equals和hashCode
我应该为Custom class Person实现hashcode和equals.人包括
名字
姓
我应该实现equals和hashcode,这样两个firstname和lastname的人应该为equals返回true,并且应该被Hashmap接受.我已经像这样实现了Person类:
public class Person {
String firstname;
String lastname;
public Person(String firstname, String lastname) {
this.firstname = firstname;
this.lastname = lastname;
}
@Override
public int hashCode() {
// TODO Auto-generated method stub
return firstname.hashCode()+lastname.hashCode();
}
@Override
public boolean equals(Object obj) {
// TODO Auto-generated method stub
Person u=(Person) obj;
return u.firstname.equals(firstname) && u.lastname.equals(lastname);
}
}
Run Code Online (Sandbox Code Playgroud)
这里Hashcode的实现是否正确?即使我得到了预期的结果,我想知道这个实现是否正确?
我对Python比较陌生,我有兴趣找到创建枚举的最简单方法.
我发现的最好的是:
(APPLE, BANANA, WALRUS) = range(3)
Run Code Online (Sandbox Code Playgroud)
其中APPLE为0,BANANA为1等.
但我想知道是否有更简单的方法.