我正在用Python读取600万条.csv文件,我希望能够在这个文件中搜索特定的条目.
搜索整个文件有什么技巧吗?你应该把整篇文章读成字典还是每次都要进行搜索?我尝试将它加载到字典中,但这花了很长时间,所以我每次都在搜索整个文件,这似乎很浪费.
我是否可以利用该列表按字母顺序排列?(例如,如果搜索词以"b"开头,我只从包含以"b"开头的第一个单词的行搜索到包含以"b"开头的最后一个单词的行
我正在使用import csv.
(一个附带问题:可以csv转到文件中的特定行吗?我想让程序以随机行开始)
编辑:我已经将列表的副本作为.sql文件,我怎么能在Python中实现它?
我希望能够使用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 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) 从我读过的一篇博客文章
-- | 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 中提供指向其文档的链接。
我希望能够为包含多个字段的 ADT派生Eq和派生Show。其中之一是功能字段。这样做时Show,我希望它显示一些虚假的东西,例如"<function>"; 这样做时Eq,我希望它忽略该字段。我怎样才能最好地做到这一点,而无需为Showand手写一个完整的实例Eq?
我不想将函数字段包装在 a 中并为此newtype编写我自己的字段- 那样使用太麻烦了。EqShow
我正在通过阅读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 ×3
python ×3
csv ×2
deriving ×2
derivingvia ×2
bash ×1
db2 ×1
dictionary ×1
large-files ×1
subprocess ×1
sum ×1