[시리즈 6. 파이썬 파충류 로컬 데이터 스토리지

제 VI : 로컬 데이터 저장소
일상적인 작동 파일을 여러 번 문제가 작동하지만 _ 문제를 라우팅하지 않습니다
. 6.0 os 모듈
매일 활동 파일 여러 번 문제가 작동하지만, 경로 문제되지
하지만 문제 처리 경로, 당신은 모듈 운영 체제를 사용할 수
있는 경우 자신을 만들 수없는 것, 다음과 같은 코드가 폴더가 스스로 판단합니다

import os

filename = "test"

if not os.path.exists(filename):   #判断文件夹是否存在
	os.mkdir(filename)             #如果不存在则创建

그림 삽입 설명 여기

여기에 테스트 폴더를 만든 것

print(os.getcwd())
print(os.path.join(os.getcwd(),"test"))  #即使不加\也会自动替换

출력 :

D:\科技\python\爬虫\大师
D:\科技\python\爬虫\大师\test
#写入方法:
import os

filename = "test"

if not os.path.exists(filename):   #判断文件夹是否存在
	os.mkdir(filename)             #如果不存在则创建


filename = os.getcwd()   #获取当前目录
#print(filename)
txt = "test"

with open (os.path.join(filename,txt),"w") as f:  #利用join方法混入test
	f.write("test web")

파일 이름에서 단순화 된 방법은 이미지 나 문서를 대량으로 다운로드 할 필요가있을 때, 그들은 UUID를 사용할 수 있습니다

import uuid
from uuid import UUID 

#基于时间戳
print(uuid.uuid1())
#基于名字的MD5散列
print(uuid.uuid3(UUID(int=1),"no"))
#基于随机数 推荐
print(uuid.uuid4())
#基于名字的SHA-1散列
print(uuid.uuid5(UUID(int=3),"zss"))

출력 :

cf59c5b4-5843-11ea-9270-e86a64061ace
ced504fe-c732-3784-85e8-e4ef35e0834b
0a2f143c-af28-423b-98c8-82243d3b6be7
c442e430-9405-5bd2-aaf2-c880d2ae2655

텍스트를 조작 6.1.python
파일을 읽을 R-
파일을 작성 W-, 반복적으로 소스 파일 덮어 쓰기
가 생성됩니다 존재하지 않는, 추가 파일 A-를
바이너리 스트림을 (사진 뮤직 비디오 WB) 운영 B-
±의 RW 설정
일반 텍스트 파일 저장 다음과 같이 우리가 아니라, 내부 TXT에 저장해야합니다 :

with open("test.txt","w",encoding="utf-8") as f:
	f.write("test web \ntest web")

에 의한 메모리 오버플로 오류 방지하기 위해 주변의 필요성, 제거하기 때문에 그들은, 파일 열기, 표현과 함께 사용에 대한 이유를 폐쇄 한
파일을 읽는 것은 매우 간단합니다 다음과 같이 :

with open("test.txt","r",encoding="utf-8") as f:
	result=f.read()
	print(result)

출력 :

test web 
test web

또는 행에 의한 읽기 행은 같은 다음과 같습니다 :

with open("test.txt","r",encoding="utf-8") as f:
	result=f.readlines()
	print(result)

출력 : ['test web \n', 'test web']
지식의 확장 :

  1. 작성한 Readline ()
with open("test.txt","r",encoding="utf-8") as f:
		result=f.readline()
		print(result)

출력 : 하나 개의 라인 출력

test web
  1. 우리가 매일 사용하는 레드 라인 ()을 처리하려고한다
    리스트로, 라인으로 TXT 파일 라인에 우리의 작업을 용이하게하기 위해, 반복적 인 프로세스를
    다음과 같이 승
ith open("test.txt","r",encoding="utf-8") as f:
	result=f.readlines()
	for r in result:
		print(r.strip()) #去除空格

출력 :

test web
test web

이진 스트림 음악에 저장된 이미지도 매우 간단하다
우리는 바이두 사진 크롤링처럼, 앞서 언급 한 바와 같이

#图片视频
def download(url):
	img = requests.get(url,headers=headers)
	with open("imgs/{}.jpg".format(uuid.uuid4()),"wb") as f:
		chunks = img.iter_content(125)
		for c in chunks:
			f.write(c)

이는 것을 언급 할 가치 인 chunks = img.iter_content(125)
작은 조각으로 이진 스트림을 처리하는 방법의 사용은
메모리, CPU의 압력을, 큰 파일을 읽고 매우 가장자리까지 한 번 칠을 피하기

CSV 6.2.Python 동작
일상 TXT 스토리지는 문제 없지만, 대부분의 데이터 형식 CSV, 엑셀, 워드에서 작업 전송
학명 : 쉼표 값 (때때로 문자 구분 된 값이라 쉼표로 구분 값 CSV를 구분하여 구분 문자 때문에 그것은 일반 텍스트 파일 표 데이터 (숫자 및 텍스트)에 저장되는 쉼표)하지 않을 수 있습니다.

CSV는 일반적 형태의 쉼표 구분이다 :
기호, 가격, 날짜, 시간, 변경, 볼륨
"AA", 39.48, "2007년 6월 11일", "9:36 AM", - 0.18,181800
"AIG" 71.38, "2007년 6월 11일", "9:36 AM", - 0.15,195500
0.46,935000 - "AXP"62.58 "2007년 6월 11일", "9:36 AM",
98.31 "BA",, "2007년 6월 11일", "9:36 AM", 0.12,104800 +
"C", 53.08, "2007년 6월 11일", "9:36 AM", - 0.25,360900
"CAT", 78.29, "6. /11/2007","9:36am",-0.23,225400
. 1) 판독
하여, TXT 상이한 전문 리더 () 버퍼
다음 () 첫 번째 행 헤더를 제거하는 반복 후의 콘텐츠

import csv

def get_csv():
	with open("test.csv",encoding="utf-8") as f:
		f_csv = csv.reader(f)
		header =next(f_csv)
		for row in f_csv:
			print(row)
if __name__ == '__main__':
	get_csv()

출력 :

['lilei', '12']
['hanmeimei', '100']

2) 물품
기록 CSV를 관심은 F 라이터로 초기화해야 핸들 획득
데이터 기입이 튜플 중첩 목록, Writerow 기록 라인 Writerows 여러 줄 쓰기

CSV의 CSV, 다음과 같은 형식으로 작성 CSV로 모듈을 읽기 :

headers=["12522SS,715282,4FB55FE8"]
rows = [("a",1,300),("b",2,420)]

with open("test1.csv","w") as f:
	f_csv = csv.writer(f)
	f_csv.writerow(headers)
	f_csv.writerows(rows)

래퍼 함수를 ​​작성 :

def wrirte_csv(data):
	with open("存储文件名.csv","a") as f:
		f_csv = csv.writer(f)
		f_csv.writerow(data)

def crawl():
	html = request.get("url")
	soup = html.text
	for i in soup:
		wrirte_csv(i)

(가능한 NA로 확장 사용) CSV 작성 사전
일반적으로, 사전 무질서의 해시가 있기 때문에
주문하지만, 실현 사전 파이썬
컬렉션에서 질서 사전 객체 OrderedDict를 가져
OrderedDict ([ '기호가', ' AA ')]
대중화 기술 왜 장애 사전 (버전 3.6 장애) 이전
알고리즘 해시 테이블은 키를 얻는 키 기능 해시 연산 호출을 수행하고 연산의 결과에 기초하는, 데이터 구조를 선택 주소는 당신의 가치에 저장됩니다. 모두가 따라 그것으로 채권의 값을 주소.

이 때문에 임의의 값의 해시 테이블은 정렬되지
는 데이터의 정렬되지 않은 세트가 있습니다.

6.3 파일 처리 JSON
JSON (] avaScript Object Notation)은 경량 데이터 교환 형식, JSON 완전히 언어에 독립적 인 텍스트 형식, JSON은 이러한 특성이 이상적인 데이터 교환 언어로 만들 수 있습니다. 쉬운 읽기 및 쓰기, 또한 쉽게 기계가 분석하고 생성 할 수 있습니다.

JSON 모듈 JSON 형식으로 부호화 및 복호화하기위한 간단한 방법을 제공하며
, 주로 json.dumps () 및 json.loads () 인터페이스 약간
동안 파일에 기록인가 json.dump () 및 json.load ()
원하는 경우 파이썬 JSON, 쓰기에 필요로 우리의 데이터 구조 :

import json


data = {
	"name":"hanmeimei",
	"score":99
}

res = json.dumps(data)
print(res)

출력 :

{"name": "hanmeimei", "score": 99}	

물론, 당신은 또한 파일에 쓸 수 있습니다 :

with open("data.json","w") as f:
		json.dump(data,f)

우리의 파이썬 구조 구문 분석 JSON 문자열은 매우 쉽게이기도합니다.

import json
data = '{"name":"hanmeimei","score":"100"}'
res = json.loads(data)
print(res)

출력 :

{'name': 'hanmeimei', 'score': '100'}

직접적으로 JSON 우리가 운영 문자열하지만 텍스트로 저장하는 경우 작성해야합니다 :

with open("data.json","r") as f:
	print(json.load(f))

출력 :

{'name': 'hanmeimei', 'score': 99}

참고 : 6.4, 6.5는 일반적으로 사용되지 않는, 이해한다
우리가 사용하는 파이썬 사무 자동화 작업에 배울 수있는 관심이
6.4.Python 조작 엑셀
(CSV를 적용하려고)
설치 모듈 핍 lxrd lxwt를 설치하다

설명 :
Lxwt의 작성 및 XIrd을 쓰기 읽기 데이터
은 W, A부터 R을
사용하면 지정된 셀에 데이터를 얻기 위해 원하는 경우, 사용
sheet.cell 값 (L, I)

6.5.Python 기록 된 말씀 (기본 필요) :
설치 모듈 : 핍 파이썬 - DOCX를 설치
주로하지만,이 단어 파일을 읽는 데 사용됩니다.
관심있는 독자가 내 블로그에 열을 따를 수 있습니다, 거기에 일부 사무 자동화 작업은
https://blog.csdn.net/ai_linnglong/category_9718088.html

게시 31 개 원래 기사 · 원 찬양 29 · 전망 2452

추천

출처blog.csdn.net/AI_LINNGLONG/article/details/104515712