天天看點

python中invalid argument_Python 開發問題整理

2019-09-10

Flask-SQLAlchemy 根據mysql資料庫表反向生成 model的 py檔案

資料表: 安裝包:

pip install flask-sqlacodegen

執行指令參考:

flask-sqlacodegen "mysql+pymysql://root:[email protected]/db_demo"

--tables running --outfile "test1.py" --flask

2018-08-12

問題1: 清空shell中的history 曆史記錄:

history -c

問題2:csv檔案去除指定例為空的值後随機抽取pandas中兩個dataframe做差集

import pandas as pd

def random_select(json_path):

df = pd.read_csv(json_path, encoding='utf-8')

dn = df[df.意見.isnull() & df.條件.isnull() & df.管理.isnull() & df.非格式化.isnull()]

df.append(dn)

ds = df.drop_duplicates(subset=['意見', '條件', '管理', '非格式化'], keep=False)

random_df = ds.sample(frac=0.1)

# 并未在原有df上排序,而是排序後傳回

sort_df = random_df.sort_values(by=['種類'], axis=0, ascending=False)

sort_df.to_csv('sample_0830.csv', index=False)

2018-08-28

從win本地移動檔案到docker指定的目錄中 ,中文檔案名亂碼。

若1、2都沒有問題,則原因為:由于zip格式中并沒有指定編碼格式,Windows下生成的zip檔案中的編碼是GBK/GB2312等,是以,導緻這些zip檔案在Linux下解壓時出現亂碼問題,因為Linux下的預設編碼是UTF8。目前網上流傳一種unzip -O cp936的方法,但一些unzip是沒有-O這個選項的。

讀取csv檔案報錯:

def random_select(json_path):

df = pd.read_csv(json_path, encoding='gb18030') # 權宜之計

random_df = df.sample(frac=0.1)

# 并未在原有df上排序,而是排序後傳回

sort_df = random_df.sort_values(by=["産品種類"], axis=0, ascending=False)

sort_df.to_csv('choice_0108.csv', index=False) # index=False,不寫入索引

if __name__ == "__main__":

choice_cols('path')

2019-08-21

windows中檔案路徑問題(這win真不是好惹的主,太 痛了):

若檔案路徑中含有類似格式:

寫入檔案報錯: “Python OSError: [Errno 22] Invalid argument...”

OMG修改一下:

win conda 源碼安裝包

将 ...tar.bz2 的檔案放到:c:ProgramData\Anaconda3\pkgs

打開cmd,conda不是内部指令, 配置環境變量

cd C:\ProgramData\Anaconda3\pkgs

conda install --use-local ...tar.bz2

2018-08-20

解決xshell終端中文顯示亂碼 解決xftp顯示中文亂碼

File ---> properties ---> Options ---> 勾選 Use UTF-8 encoding

心好累:

從此不論是用啥(pandas、open)讀取檔案、寫入檔案,都主動加上(encoding='utf-8')。

運作任何指令:凡是有檔案路徑都使用絕對路徑。

任何軟體編碼一律:utf-8

2018-08-12

參考連結:

error: each element of 'ext_modules' option must be an Extension instance or

2-tuple

修改:

This code does not generate the error:

from setuptools import find_packages, setup

from Cython.Build import cythonize

問題1: 原生正規表達式 為什麼不比對單詞(兩個字元)?

eg: [^(北京)]* -->錯誤了解:不比對 "北京" 這個單詞,但可比對 北海 北平

-->正确了解:隻要出現 “北” 或 “京” 的句子都不比對。

. 是比對任意字元,而[^]是不比對某個字元,

.*

[^]*