一周前开始使用Python,我有一些关于阅读和写入相同文件的问题.我已经在线阅读了一些教程,但我仍然对此感到困惑.我可以理解简单的读写文件.
openFile = open("filepath", "r")
readFile = openFile.read()
print readFile
openFile = open("filepath", "a")
appendFile = openFile.write("\nTest 123")
openFile.close()
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试以下操作,我会在写入的文本文件中收到一堆未知文本.任何人都可以解释为什么我会收到这样的错误,为什么我不能使用相同的openFile对象,如下所示.
# I get an error when I use the codes below:
openFile = open("filepath", "r+")
writeFile = openFile.write("Test abc")
readFile = openFile.read()
print readFile
openFile.close()
Run Code Online (Sandbox Code Playgroud)
我会尽力澄清我的问题.在上面的示例中,openFile是用于打开文件的对象.如果我想第一次写它,我没有问题.如果我想使用相同的openFile来读取文件或附加内容.它不会发生或给出错误.在我可以对同一个文件执行另一个读/写操作之前,我必须声明相同/不同的打开文件对象.
#I have no problems if I do this:
openFile = open("filepath", "r+")
writeFile = openFile.write("Test abc")
openFile2 = open("filepath", "r+")
readFile = openFile2.read()
print readFile
openFile.close()
Run Code Online (Sandbox Code Playgroud)
如果有人能告诉我这里做错了什么,或者只是一个Pythong的事情,我将不胜感激.我使用的是Python 2.7.谢谢!
我有一本字典,我想根据一些键从中获取一些值.例如,我有一个字典,用户的名字,姓氏,用户名,地址,年龄等.比方说,我只想获得一个值(名称) - 姓氏或名字或用户名,但优先顺序如下所示:
(1)姓氏:如果密钥存在,获取值并停止检查.如果没有,请转到下一个键.
(2)名字:如果密钥存在,获取值并停止检查.如果没有,请转到下一个键.
(3)username:如果key存在,则获取值或返回null/empty
#my dict looks something like this
myDict = {'age': ['value'], 'address': ['value1, value2'],
'firstName': ['value'], 'lastName': ['']}
#List of keys I want to check in descending priority: lastName > firstName > userName
keySet = ['lastName', 'firstName', 'userName']
Run Code Online (Sandbox Code Playgroud)
我尝试做的是获取所有可能的值并将它们放入列表中,以便我可以检索列表中的第一个元素.显然它没有成功.
tempList = []
for key in keys:
get_value = myDict.get(key)
tempList .append(get_value)
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来做到这一点,而不使用if else块?
我刚刚开始使用Stanford Parser,但我不太了解这些标签.这可能是一个愚蠢的问题,但任何人都可以告诉我SBARQ和SQ标签代表什么,我在哪里可以找到它们的完整列表?我知道Penn Treebank的样子,但这些略有不同.
Sentence: What is the highest waterfall in the United States ?
(ROOT
(SBARQ
(WHNP (WP What))
(SQ (VBZ is)
(NP
(NP (DT the) (JJS highest) (NN waterfall))
(PP (IN in)
(NP (DT the) (NNP United) (NNPS States)))))
(. ?)))
Run Code Online (Sandbox Code Playgroud)
我查看了Stanford Parser网站并阅读了其中列出的一些期刊,但没有解释前面提到的标签.我找到了一本描述所有依赖项的手册,但它没有解释我在寻找什么.谢谢!
我有一个带键值对的字典.我的值包含字符串.如何搜索字典中是否存在特定字符串并返回与包含该值的键对应的键.
假设我想搜索字符串值中是否存在字符串'Mary'并获取包含它的键.这是我尝试过的,但显然它不会那样工作.
#Just an example how the dictionary may look like
myDict = {'age': ['12'], 'address': ['34 Main Street, 212 First Avenue'],
'firstName': ['Alan', 'Mary-Ann'], 'lastName': ['Stone', 'Lee']}
#Checking if string 'Mary' exists in dictionary value
print 'Mary' in myDict.values()
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来执行此操作,因为我可能想要查找存储值的子字符串('Mary'是值'Mary-Ann'的子字符串).
我将几个函数组合到一个类中。一些函数将使用相同的列表来完成一些计算工作。有没有办法放置列表,以便所有函数仍然可以访问该列表,而不是将列表放在每个需要列表的函数中?
// Simplified version of what I am trying to do
Class TestGroup
{
public $classArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
public function getFirstFiveElemFromArray()
{
$firstFive = array_slice($this -> $classArray, 0, 5, true);
return $firstFive;
}
public function sumFirstEightElemFromArray()
{
//methods to get first eight elements and sum them up
}
}
$test = new TestGroup;
echo $test -> getFirstFiveElemFromArray();
Run Code Online (Sandbox Code Playgroud)
这是我收到的错误消息:
Undefined variable: classArray in C:\wamp\www\..
Run Code Online (Sandbox Code Playgroud) 我正在尝试检查 hive Metastore 中是否存在表,如果不存在,请创建该表。如果表存在,则追加数据。
我有下面的代码片段:
spark.catalog.setCurrentDatabase("db_name")
db_catalog = spark.catalog.listTables(dbName = 'table_name)
if any(table_name in row for row in db_catalog):
add data
else:
create table
Run Code Online (Sandbox Code Playgroud)
但是,我收到一个错误。
>>> ValueError: Some of types cannot be determined after inferring
Run Code Online (Sandbox Code Playgroud)
我无法解决值错误,因为在 hive Metastore 中创建的其他数据库表出现相同的错误。是否有另一种方法来检查 hive Metastore 中是否存在表?
我对NLTK的树函数有一些疑问.我试图从树结构中提取某个单词,如下所示.
test = Tree.parse('(ROOT(SBARQ(WHADVP(WRB How))(SQ(VBP do)(NP (PRP you))(VP(VB ask)(NP(DT a)(JJ total)(NN stranger))(PRT (RP out))(PP (IN on)(NP (DT a)(NN date)))))))')
print "Input tree: ", test
print test.leaves()
(SBARQ
(WHADVP (WRB How))
(SQ
(VBP do)
(NP (PRP you))
(VP
(VB ask)
(NP (DT a) (JJ total) (NN stranger))
(PRT (RP out))
(PP (IN on) (NP (DT a) (NN date)))))))
['How', 'do', 'you', 'ask', 'a', 'total', 'stranger', 'out', 'on', 'a', 'date']
Run Code Online (Sandbox Code Playgroud)
我可以使用leaves()函数找到所有单词的列表.有没有办法获得特定的叶子?例如:我想从NP短语中获取第一个/最后一个名词?答案对于第一个名词是"陌生人"而对于最后一个名词是"日期".
我是Java的新手,我需要一些帮助才能从字符串中提取多个子字符串.字符串的示例如下所示:
String = "How/WRB can/MD I/PRP find/VB a/DT list/NN of/IN celebrities/NNS '/POS real/JJ names/NNS ?/."
Run Code Online (Sandbox Code Playgroud)
期望的结果: WRB MD PRP VB DT NN IN NNS POS JJ NNS
我有一个文本文件,可能有数千个类似的POS标记行,我需要从中提取POS标记并根据POS标记进行一些计算.
我尝试过使用tokenizer但是没有真正得到我想要的结果.我甚至尝试使用split()并保存到数组,因为我需要存储它并在以后使用它,但仍然无效.
最后,我尝试使用模式匹配器,我正在使用正则表达式的问题,因为它返回正斜杠的单词.
Regex: [\/](.*?)\s\b
Result: /WRB /MD ....
Run Code Online (Sandbox Code Playgroud)
如果有更好的方法,请告诉我,或者是否有人可以帮我弄清楚我的正则表达式有什么问题.
我在regex或Python中需要帮助从一组字符串中提取子字符串.该字符串由字母数字组成.我只想要在第一个空格之后开始并在最后一个空格之前结束的子字符串,如下面给出的示例.
Example 1:
A:01 What is the date of the election ?
BK:02 How long is the river Nile ?
Results:
What is the date of the election
How long is the river Nile
Run Code Online (Sandbox Code Playgroud)
虽然我在它,有一个简单的方法来提取字符串之前或之后的字符串?例如,我想从类似于示例2中给出的字符串中提取日期或日期.
Example 2:
Date:30/4/2013
Day:Tuesday
Results:
30/4/2013
Tuesday
Run Code Online (Sandbox Code Playgroud)
我实际上读过有关正则表达式但它对我来说非常陌生.谢谢.
我正在寻找一个关于如何运行Multinomial Naive Bayes分类器的简单示例.我从StackOverflow中看到了这个例子:
import numpy as np
from nltk.probability import FreqDist
from nltk.classify import SklearnClassifier
from sklearn.feature_extraction.text import TfidfTransformer
from sklearn.feature_selection import SelectKBest, chi2
from sklearn.naive_bayes import MultinomialNB
from sklearn.pipeline import Pipeline
pipeline = Pipeline([('tfidf', TfidfTransformer()),
('chi2', SelectKBest(chi2, k=1000)),
('nb', MultinomialNB())])
classif = SklearnClassifier(pipeline)
from nltk.corpus import movie_reviews
pos = [FreqDist(movie_reviews.words(i)) for i in movie_reviews.fileids('pos')]
neg = [FreqDist(movie_reviews.words(i)) for i in movie_reviews.fileids('neg')]
add_label = lambda lst, lab: [(x, lab) for x in lst]
#Original code from thread:
#classif.train(add_label(pos[:100], 'pos') …Run Code Online (Sandbox Code Playgroud) python ×6
dictionary ×2
key-value ×2
nltk ×2
regex ×2
apache-spark ×1
bayesian ×1
class ×1
hive ×1
io ×1
java ×1
oop ×1
php ×1
pyspark ×1
python-3.x ×1
stanford-nlp ×1
string ×1
tree ×1