Tag: python

检查Python中的path是否有效,而不在path的目标处创build文件

我有一个path(包括目录和文件名)。 我需要testing一下,如果文件名是有效的,例如,如果文件系统将允许我创build一个这样的名称的文件。 文件名有一些unicode字符 。 假设path的目录段是有效的和可访问的( 我试图让这个问题更适用于某种程度,显然我太过于自信了 )是安全的。 除非必须 ,否则我不想逃脱任何东西。 我会发布一些我正在处理的示例字符,但显然它们会被堆栈交换系统自动删除。 无论如何,我想保持标准的统一码实体像ö ,只能转义在文件名无效的东西。 这是抓住。 可能(或可能不)已经成为path目标上的文件。 如果它存在,我需要保留该文件,如果不存在,则不要创build文件。 基本上我想检查是否可以写入path, 而不打开写入path (以及通常需要的自动文件创build/文件破坏)。 因此: try: open(filename, 'w') except OSError: # handle error here 从这里 是不可接受的,因为它会覆盖现有的文件,我不想触摸(如果有的话),或者如果不存在的话创build文件。 我知道我可以这样做: if not os.access(filePath, os.W_OK): try: open(filePath, 'w').close() os.unlink(filePath) except OSError: # handle error here 但是,这将创build filePath文件,然后我将不得不os.unlink 。 最后,似乎花了6或7行来做一些简单的操作,比如os.isvalidpath(filePath)或类似的操作。 顺便说一句,我需要这个(至less)Windows和MacOS上运行,所以我想避免平台特定的东西。 “

在python中散列unicodestring

我尝试散列一些Unicodestring: hashlib.sha1(s).hexdigest() UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-81: ordinal not in range(128) 其中s是这样的: œΣ¡™£¢∞§¶•ªº-≠œΣ'®†¥¨øπ“'åß∂ƒ©˙Δ˚¬…æΩ≈ç√∫~μ≤≥÷åйцукенгшщзхъфывапролджэячсмитьбююю..юбьтијџўќ†њѓѕ” “«««\dzћ÷…•Δљl«єђxcvіƒm≤≥ї!@#$©^&*(()———-ΔΔΔΔΔΔΔΔΔΔΔΔΔ ΔΔΔΔΔΔ•…÷÷ћzdzћ…•ΔљlљΔ•…÷÷ћzћ…•ΔљΔ•…љΔ•…љΔ•…Δљ•…Δљ•…љΔ•…Δ• …Δ•…Δ•Δ…•÷Δ•…÷Δ•…÷Δ•…÷Δ•…÷Δ•…÷Δ•…÷Δ•… 我应该修补什么?

在pandas如何将一个datestring的string转换为date时间对象,并把它们放在一个DataFrame?

import pandas as pd date_stngs = ('2008-12-20','2008-12-21','2008-12-22','2008-12-23') a = pd.Series(range(4),index = (range(4))) for idx, date in enumerate(date_stngs): a[idx]= pd.to_datetime(date) 这个码位产生错误: TypeError:“'int'对象不可迭代” 任何人都可以告诉我如何将这一系列的date时间string作为DateTime对象到DataFrame?

Pythondependency injection框架

是否有与Guice( http://code.google.com/p/google-guice )for Python相同的框架?

如何在Django模型上存储字典?

我需要在Django模型中存储一些数据。 这些数据不等于模型的所有实例。 起初,我想了解这个模型的子类,但我试图保持应用程序的灵活性。 如果我使用子类,每次需要一个新types的对象,我都需要创build一个完整的类,这是不好的。 我也将结束很多子类只存储一对额外的领域。 我真的觉得字典是最好的方法,但是在Django文档中没有关于在Django模型中存储字典的信息(或者我找不到它)。 任何线索?

如何使用python unittest编写文件的函数unit testing

我有一个Python输出文件写入磁盘的function。 我想用Pythonunit testing模块为它编写一个unit testing。 我应该如何声明文件的平等? 如果文件内容不同于预期的差异列表,我希望得到一个错误。 与unix diff命令的输出一样。 有没有官方/推荐的方法呢?

检查Python脚本的用户是否具有根类权限的最佳实践是什么?

我有一个Python脚本,将会做很多事情需要根级别的权限,比如在/ etc中移动文件,用apt-get安装等等。 我目前有: if os.geteuid() != 0: exit("You need to have root privileges to run this script.\nPlease try again, this time using 'sudo'. Exiting.") 这是做这个检查的最好方法吗? 还有其他的最佳做法吗?

如何处理python中的破pipe(SIGPIPE)?

我用python编写了一个简单的multithreading游戏服务器,为每个客户端连接创build一个新的线程。 我发现,每隔一段时间,服务器将崩溃,因为pipe道损坏/ SIGPIPE错误。 我很确定,当程序试图向不再存在的客户端发送响应时,它正在发生。 什么是处理这个问题的好方法? 我的首选解决scheme将简单地closures到客户端的服务器端连接,继续前进,而不是退出整个程序。 PS: 这个问题/答案以通用的方式处理问题; 我应该如何具体解决它?

如何从Pythondate时间对象中提取年份?

我想使用Python从当前date中提取年份。 在C#中,这看起来像: DateTime a = DateTime.Now() a.Year Python中需要什么?

保存朴素贝叶斯训练分类器在NLTK

对于我如何保存一个训练有素的分类器,我有点困惑。 就像在我每次想使用它时重新训练一个分类器显然是非常糟糕和缓慢的,我如何保存它并在我需要的时候再次加载呢? 代码如下,预先感谢您的帮助。 我正在使用Python与NLTK朴素贝叶斯分类器。 classifier = nltk.NaiveBayesClassifier.train(training_set) # look inside the classifier train method in the source code of the NLTK library def train(labeled_featuresets, estimator=nltk.probability.ELEProbDist): # Create the P(label) distribution label_probdist = estimator(label_freqdist) # Create the P(fval|label, fname) distribution feature_probdist = {} return NaiveBayesClassifier(label_probdist, feature_probdist)