小编Ice*_*ack的帖子

如何在Python中快速搜索.csv文件

我正在用Python读取600万条.csv文件,我希望能够在这个文件中搜索特定的条目.

搜索整个文件有什么技巧吗?你应该把整篇文章读成字典还是每次都要进行搜索?我尝试将它加载到字典中,但这花了很长时间,所以我每次都在搜索整个文件,这似乎很浪费.

我是否可以利用该列表按字母顺序排列?(例如,如果搜索词以"b"开头,我只从包含以"b"开头的第一个单词的行搜索到包含以"b"开头的最后一个单词的行

我正在使用import csv.

(一个附带问题:可以csv转到文件中的特定行吗?我想让程序以随机​​行开始)

编辑:我已经将列表的副本作为.sql文件,我怎么能在Python中实现它?

python csv dictionary large-files

4
推荐指数
1
解决办法
1万
查看次数

循环遍历Python中的.csv文件中的列

我希望能够使用Python打开这样的.csv文件:

5,26,42,2,1,6,6
Run Code Online (Sandbox Code Playgroud)

然后像添加一样对它们执行一些操作.

total = 0
with open("file.csv") as csv_file:
        for row in csv.reader(csv_file, delimiter=','):
            for number in range(7):
                total += int(row[number]) 
Run Code Online (Sandbox Code Playgroud)

问题是,由于.csv文件只有一行和一个未知数量的列,我不知道如何使这个工作没有硬编码或使用真正丑陋的代码.

有没有办法使用像for columns in filePython 这样的东西循环遍历列?

python csv sum

4
推荐指数
1
解决办法
2万
查看次数

在Python中执行BASH命令 - 在同一个过程中

我需要在Python 2.6 . /home/db2v95/sqllib/db2profile之前执行命令import ibm_db_dbi.

在我输入Python之前执行它:

baldurb@gigur:~$ . /home/db2v95/sqllib/db2profile
baldurb@gigur:~$ python
Python 2.6.4 (r264:75706, Dec  7 2009, 18:45:15) 
[GCC 4.4.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import ibm_db_dbi
>>> 
Run Code Online (Sandbox Code Playgroud)

但使用执行它在Python os.system(". /home/db2v95/sqllib/db2profile")subprocess.Popen([". /home/db2v95/sqllib/db2profile"])在一个错误的结果.我究竟做错了什么?

编辑:这是我收到的错误:

> Traceback (most recent call last):  
> File "<file>.py", line 8, in
> <module>
>     subprocess.Popen([". /home/db2v95/sqllib/db2profile"])  
> File
> "/usr/lib/python2.6/subprocess.py",
> line 621, in __init__
>     errread, errwrite)   File "/usr/lib/python2.6/subprocess.py",
> line …
Run Code Online (Sandbox Code Playgroud)

python db2 bash subprocess

4
推荐指数
2
解决办法
9182
查看次数

这个“派生新类型”语法是什么?

从我读过的一篇博客文章

-- | Newtype for disabling logging
newtype NoLoggingT m a
  = NoLoggingT { runNoLoggingT :: m a }
  deriving newtype (Functor, Applicative, Monad)
  deriving (MonadTrans) via IdentityT

instance Monad m => MonadLog (NoLoggingT m) where logLn _ _ = pure ()
Run Code Online (Sandbox Code Playgroud)

那是什么deriving newtype语法?它是哪个扩展名,它有什么作用?请在 anwser 中提供指向其文档的链接。

haskell deriving derivingvia

3
推荐指数
1
解决办法
81
查看次数

为包含不能有 Eq 或 Show 的字段的 ADT 派生 Eq 和 Show

我希望能够为包含多个字段的 ADT派生Eq和派生Show。其中之一是功能字段。这样做时Show,我希望它显示一些虚假的东西,例如"<function>"; 这样做时Eq,我希望它忽略该字段。我怎样才能最好地做到这一点,而无需为Showand手写一个完整的实例Eq

我不想将函数字段包装在 a 中并为此newtype编写我自己的字段- 那样使用太麻烦了。EqShow

haskell deriving derivingvia

3
推荐指数
2
解决办法
121
查看次数

如何对类型类实例施加类型约束?

我正在通过阅读Learn a Haskell for Great Good 来学习 Haskell!在“创建我们自己的类型和类型类”部分的末尾,YesNo定义了一个类来模拟 javascript 等语言的真实性:

class YesNo a where  
    yesno :: a -> Bool 

instance YesNo Int where  
    yesno 0 = False  
    yesno _ = True  

(etc.)
Run Code Online (Sandbox Code Playgroud)

在阅读参考文献之前,我试图自己充实这些实例作为练习,并认为我可以聪明地为所有Num类型定义它:

instance (Num a) => YesNo a where
  yesno 0 = False
  yesno _ = True
Run Code Online (Sandbox Code Playgroud)

我将跳过这需要什么FlexibleInstances,我想我已经在文档和这个答案之间理解了。一旦打开,编译器就会抱怨“约束‘Num a’不小于实例头‘YesNo a’”。这个问题的答案很好地解释了这意味着什么。使用newtype那里提供的解决方案,我想出了类似的东西

newtype TruthyNum a = TruthyNum a

instance (Num a, Eq a) => YesNo …
Run Code Online (Sandbox Code Playgroud)

haskell

1
推荐指数
1
解决办法
149
查看次数

标签 统计

haskell ×3

python ×3

csv ×2

deriving ×2

derivingvia ×2

bash ×1

db2 ×1

dictionary ×1

large-files ×1

subprocess ×1

sum ×1